Форум программистов, компьютерный форум CyberForum.ru

Указатели - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обработка исключений в классах для пользовательских типов http://www.cyberforum.ru/cpp-beginners/thread812516.html
Здорова господа! Запустил токо класс String тестю и тут у меня вылетело исключение выход за пределы индекса, и программа тупо аварийно остановилась В классе String, Range это вложенный класс для исключения выход за пределы индекса. я попробовал обработать это исключение и записал код: int main() try { //...
C++ Вычисление интергала, но входные данные сначала считываются из файла, а выходные наоборот в него записываются. Подскажите пожалуйста как это сделать Заранее спасибо за помощь.) #include<iostream> #include<conio.h> #include <stdio.h> #include <cmath> using namespace std; float f2(float x){ return sin(exp(x)); } http://www.cyberforum.ru/cpp-beginners/thread812488.html
Mayers S. vs C++11 standard C++
Привет, ребят! У Майерса читал: для предоставления виртуальной функции реализации по умолчанию, которой нужно пользоваться по явному требованию наследующего и переопределяющего виртуальную функцию программиста, т.е. чтобы не получилось так, что в наследном классе забыл её переопределить и будет срабатывать реализация из базового класса (а так же с целью незагромождения пространства имен класса...
Численное дифф-ние многочленом третьей степени C++
Было дано задание реализовать Численное дифференцирование с помощью многочлена третьей степени на C++. Я, кажется, смогла понять общий принцип, но на стадии реализации приключился ступор. http://i1.imageban.ru/thumbs/2013.03.19/48072c724b3519d52dba73f5d3fa4379.jpg http://i3.imageban.ru/thumbs/2013.03.19/9a79e8834e7702218e61273f3d3a462c.jpg Как я поняла, нужно преобразовать формулу, ведь...
C++ Вращение окружностей вокруг определенного центра http://www.cyberforum.ru/cpp-beginners/thread812476.html
Всем доброго времени и суток! Как сделать вращающиеся окружности вокруг центра? Рисунок есть. Не могу понять как задать цикл вращения... Версия 4.9.9.2 Dev-C++#include<conio.h> #include<graphics.h> main() {
C++ из L- ой строки вычесть K- ую умноженную на a(LK)/a(KK) помогите пожалуйста написать программу."заданы матрица А размером 4*4 и числа K и L (K!=L;1<=K;L<4).из L строки вычесть K умноженную на a(LK)/a(KK) ."в с++ Borland подробнее

Показать сообщение отдельно
Apelsin199
11 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 127
19.03.2013, 11:18     Указатели
Вот в чем проблема, пишу код по хешированию вот что есть:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include<clocale>
#include<stdio.h>
#include<conio.h>
#include <iostream>
#include <fstream>
using namespace std;
 
const int N=256;
 
struct HashTable
{
    char *arr[256];
    HashTable()
    {
        for(int i=0;i<N;i++)
        {
            arr[i]="a";
        }
    }
    int HashKey(char *str)
    {
        unsigned char amount=0;
        while(*str)
        {
            amount +=*str;
            *str++;
        }
        amount*=amount;
        amount=amount%256;
        return amount;
    }
    bool Add(char *str)
    {
        int i;
        i=HashKey(str);
        while(i!=N)
        {
            if(arr[i]=="a")
            {
                arr[i]=str;
                return true;
            }
            else
            {
                i=(i+1)%N;
            }
        }
        return false;
    }
    void PrintHash()
    {
        for(int i=0;i<N;i++)
        {
            if(arr[i]!="a")
            {
                cout << i << ": ";
                cout << arr[i]<<"\n";
            }
        }
    }
};
 
int main()
{
    setlocale( LC_ALL, "rus" );
    //ifstream in("input.txt");
    FILE *in;
    in=fopen("input.txt", "r");
    HashTable table;
    char str[100];
    //str=new char[100];
    while(!feof(in))
    {
        fscanf(in,"%s",&str);
        if(!table.Add(str))
        {
            printf("Хеш-таблица заполнина!!!");
            break;
        }
    }
    /*while(!in.eof())
    {
        in>>str;
        //strcpy(str,str);
        if(!table.Add(*str))
        {
            printf("Хеш-таблица заполнина!!!");
            break;
        }
    }*/
    table.PrintHash();
    getch();
    return 0;
}
Проблема заключается в том, что ключи считает правильно, записывает в массив слова правильно(по ключу), но вот на экран за место всех прочитанных и записанных в массив слов, выводит на всех позициях последнее прочитанное слово, как это исправить?...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru