Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2014, 02:18   #1
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию Ошибка в ходе программы, язык Си.

Как я понял в программе не только данная ошибка, но программа яро указывает именно на нее(на последнюю скобку в программе) выводя сообщение [Error] expected declaration or statement at end of input
полный код программы: http://ideone.com/svl2NP
East Undia Trading вне форума Ответить с цитированием
Старый 31.03.2014, 13:12   #2
niwssg
Пользователь
 
Регистрация: 12.11.2012
Сообщений: 35
По умолчанию

В
Код:
add_name
Скобочка '}' потерялась в конце.
niwssg вне форума Ответить с цитированием
Старый 31.03.2014, 15:08   #3
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию

Можно еще вопрос, вот я передаю в функцию void add_name(char namef_,char namep_, int date_, char genre_) - так я правильно делаю?
И еще ругается вот на что
Код:
switch (key)
                    {
                    case 1: 
                        {
                            printf("Введите название театра\n");
                            gets(name_f);
                            ...
[Warning] passing argument 1 of 'gets' makes pointer from integer without a cast [enabled by default]
Я пробовал считывать через scanf - но так у меня тоже не получилось.Как я понял, я тип неправильно указал, подскажите в чем проблема.
East Undia Trading вне форума Ответить с цитированием
Старый 31.03.2014, 15:27   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
[Warning] - Внимание
[Error] - Ошибка
Запомни это.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.03.2014, 16:07   #5
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию

Stilet, я понял что он меня тормазом считает.Программа компилируется в Dev-C++, но после ввода имени выдает ошибку, возможно, это связано.Буду разбираться.
East Undia Trading вне форума Ответить с цитированием
Старый 31.03.2014, 16:11   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
я понял что он меня тормазом считает.
Причем тут это?
Открой переводчик - переведи текст ошибки, получишь то же самое что я написал.
"Внимание" это просто предупреждение о части программы, написанной не по феншую, но это не ошибка, которая не позволит программе запуститься.
Цитата:
но после ввода имени выдает ошибку
Ну так ее-то и нужно было приводить.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.03.2014, 16:32   #7
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию

Stilet, тут самая, как мне кажется, плохая ошибка.Программа не указывает что именно не так, а вылетает во время работы.Я пробежался по всем пунктам своего меню, и все отзываются, но при вводе имени ошибка.
East Undia Trading вне форума Ответить с цитированием
Старый 31.03.2014, 16:48   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну так значит нельзя так вводить )
Значит вводишь символов больше чем может принять name_f
Меняй на scanf_s()
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.03.2014, 18:15   #9
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию

Stilet, нет, ошибка именно при вводе единицы, когда программа должная перейти к полям ввода имени.То есть сначала выводится:
Код:
   printf("1. Enter name\n");
        printf("2. Delete name\n");
        printf("3. Show names\n");
        printf("4. Show names from end\n");
        printf("0. Exit\n");
В этом месте все работает, я могу выбрать Delete введя двойку и он выведет сообщение, что нет введенных элементов.
Но когда выберу Enter name выведутся:
Код:
                            printf("Введите название театра\n");
                            printf("Ведите название представления\n");;
                            printf("Ведите дату представления\n");
			    printf("Ведите жанр  представления\n");
Хотя они должно выводится по очереди после каждого ввода названия, даты и жанра, эти поля выводятся сразу и с ошибкой.Короче, вот что получается:

И как я вижу не выводится поле жанр
East Undia Trading вне форума Ответить с цитированием
Старый 31.03.2014, 18:34   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
case 1: 
{
    add_name();
    break;
}

...

void add_name(void)
{
    newList = (struct city *) malloc(sizeof(struct city));
    scanf_s("%s", newList->name_f);
    scanf_s("%s", newList->name_p);
    scanf_s("%s", newList->date);
    scanf_s("%s", newList->genre);
    newList->next = head;
    newList->previous = NULL;
    head = newList;
    if (last == NULL) last = head;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 31.03.2014 в 18:43.
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в коде программы (для индекса требуется массив или указатель). Язык Си Семижон Евгения Помощь студентам 7 20.01.2014 02:45
Ошибка в коде программы.Язык Си. East Undia Trading Помощь студентам 8 19.01.2014 21:03
Ошибка в ходе программы, требуется пояснение... kotzzz Мультимедиа в Delphi 2 14.04.2010 14:31
Язык программы KWN, lnc Общие вопросы Delphi 1 22.01.2010 22:33
как в цикле создавать массив с одним и тем же именем!?ошибка в ходе выполнения -access violation at addr sleevman Помощь студентам 2 28.10.2009 19:06