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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.94
zewer
1071 / 762 / 76
Регистрация: 07.01.2011
Сообщений: 5,693
#1

Вывод результата на экран - C++

20.04.2012, 23:58. Просмотров 2126. Ответов 44
Метки нет (Все метки)

Всем привет, нуждаюсь в помощи!
Написал прогу, она еще не на 100% готова, но при прекопиляции дает ошибку в последних 2 строках кода

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
#include <conio.h>
#include "iostream"
#include "fstream"
using namespace std;
 
struct List
{
    char ar[100];
};
 
void main ()
{
    setlocale (LC_ALL,"Ukrainian");
    List *l;
    int h;
    int key = 0;
    int tmp;
    int m = 37;
    char *ar[37];
    ifstream in("C:\\data.txt",ios::in);
    cout << "\t\t\tХеш-таблиця № 1\n";
 
    while(!in.eof())
    {
        cout << "\n\n";
        l = new List [100];
        in >> l->ar;
        cout << "Зчитане слово: " << l->ar;
        while ( l->ar[key] != NULL )
            key++;
        cout << "\nСлово (ключ) мiстить " << key << " слiв\n";
        h = (7*key)%37;
        cout << "\th(key) = " << h << "\n\n";
        if (ar[h] == NULL)
        {
            ar[h] = l->ar;
            cout << "\tСлово занесено у хеш-таблицю\n";
        }
        else
        {
            cout << "Слово не може бути занесеним у хеш-таблицю, оскiльки виявлено колiзiю\n";
        }
        key = 0;
    }
    in.close();
    for (int i = 0; i < m; i++)           /// сдесь ошибка
        cout << *ar[i];         //// сдесь ошибка
}
помогите правильно виводить масив, в котором в будущем при обработке входной инфы будет результат

Коротко по програме:
Вх данные местяться в data.txt , я их копирую в прогу, работаю с ними, по формуле делаю хеш-таблицу, и в масиве ar[i] будет меститься сама таблица, но при виводе на экран - прога получает crash, помогите пжл)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
21.04.2012, 20:33     Вывод результата на экран #41
А ну ка запусти вот это
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
#include <conio.h>
#include <iostream>
#include <fstream>
using namespace std;
 
struct List
{
    char ar[100];
};
 
int main ()
{
    setlocale (LC_ALL,"Ukrainian");
    List *l;
    int h,i=0;
    int key = 0;
    int tmp;
    int m = 37;
    char *ar[37];
    l = new List [100];
    for (int j=0;j<37;j++) { ar[j]=new char[37]; ar[j]="";  }
 
    ifstream in("C:\\data.txt",ios::in | ios::binary);
    cout << "\t\t\tХеш-таблиця № 1\n";
 
    while(!in.eof())
    {
        cout << "\n\n";
 
        in >> l[i].ar;
        cout << "Зчитане слово: " << l[i].ar;
        while ( l[i].ar[key] != NULL )
            key++;
        cout << "\nСлово (ключ) мiстить " << key << " слiв\n";
        h = (7*key)%37;
        cout << "\th(key) = " << h << "\n\n";
        if (ar[i] == "")
        {
 
            ar[h] = l[i].ar;
            cout << "\tСлово занесено у хеш-таблицю\n";
 
 
 
        }
        else
        {
            cout << "Слово не може бути занесеним у хеш-таблицю, оскiльки виявлено колiзiю\n";
        }
        key = 0; i++;
    }
 
    in.close();
    for ( i = 0; i < m; i++)
        cout << ar[i];
}
Добавлено через 2 минуты
Если это заработает то сам алгоритм я не трогал но ошибки в мелочах(типа на что указывает указатель) сыграли свою роль
zewer
1071 / 762 / 76
Регистрация: 07.01.2011
Сообщений: 5,693
21.04.2012, 20:40  [ТС]     Вывод результата на экран #42
л, офигенно, все ок, даже вконце вывело масив с правильним результатом))

Добавлено через 5 минут
я еще буду доделивать прогу, если что то не будет получаться, я отпишу сюда, не забывайте эту тему? хорошо??
пока очень благодарен ))
Avazart
7044 / 5221 / 259
Регистрация: 10.12.2010
Сообщений: 22,944
Записей в блоге: 17
21.04.2012, 20:41     Вывод результата на экран #43
как прога зашла туда? если по вашему там бесконечный цикл? интересно, правда
А другие ошибки никто не исключал, учитывая еще небрежное обращение с памятью
C++
1
while ( l->ar[key] != NULL )
Что это вообще за конструкция?
zewer
1071 / 762 / 76
Регистрация: 07.01.2011
Сообщений: 5,693
21.04.2012, 20:43  [ТС]     Вывод результата на экран #44
Цитата Сообщение от Avazart Посмотреть сообщение
А другие ошибки никто не исключал, учитывая еще небрежное обращение с памятью
C++
1
while ( l->ar[key] != NULL )
Что это вообще за конструкция?
работает до тих пор, пока в масиве, что содержит слово, не будет NULL, т.е. терминальный нуль
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2012, 20:47     Вывод результата на экран
Еще ссылки по теме:

Вывод результата поиска C++
C++ Вывод результата
Вывод дробного результата C++
Неправильный вывод результата C++
C++ Вывод результата вне цикла

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
21.04.2012, 20:47     Вывод результата на экран #45
Цитата Сообщение от zewer Посмотреть сообщение
я еще буду доделивать прогу, если что то не будет получаться, я отпишу сюда, не забывайте эту тему?
можешь в скайп обращаться если что нибудь надо будет
alexandr3367
потому что специально в эту тему я смотреть вряд ли буду так как их тут очень много)))
Yandex
Объявления
21.04.2012, 20:47     Вывод результата на экран
Ответ Создать тему
Опции темы

Текущее время: 19:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru