Помощь - Поиск - Пользователи - Календарь
Полная версия: Подскажите, где находится ошибка в коде
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Till
у меня есть задание, Разработать программу, которая вводит фактические данные из таблицы.
вот задание:
Нажмите для просмотра прикрепленного файла

#include <stdio.h>
int main(void) {
char name1[9], name2[9], name3[9];
char sc1, sc2, sc3;
unsigned short cnt1, cnt2, cnt3;
float sq1, sq2, sq3;
/* Введение фактических данных*/
printf("1. Введите: Автор книги, Название, Год выпуска, Группа >");
scanf("%s",name1);
scanf("%c",&sc1);
scanf("%d",&cnt1);
scanf("%f",&sq1);
printf("2. Введите: Автор книги, Название, Год выпуска, Группа >");
scanf("%s",name2);
scanf("%c",&sc2);
scanf("%d",&cnt2);
scanf("%f",&sq2);
printf("3. Введите: Автор книги, Название, Год выпуска, Группа >");
scanf("%s",name3);
scanf("%c",&sc3);
scanf("%d",&cnt3);
scanf("%f",&sq3);
/* Вывод таблицы */
/* вывод заголовков */
printf("-----------------------------------------------\n");
printf("|Каталог библиотеки |\n");
printf("|---------------------------------------------------|\n");
printf("| Автор книги | Название | Год выпуска|Группа |\n");
printf("| | | | |\n");
printf("|-------------|----------|------------|-------------|\n");
/* вывод строк фактических данных */
printf("| %9s | %c | %3d | %-5.1f |\n", name1, sc1, cnt1, sq1);
printf("| %9s | %c | %3d | %-5.1f |\n", name2, sc2, cnt2, sq2);
printf("| %9s | %c | %3d | %-5.1f |\n", name3, sc3, cnt3, sq3);
/* вывод примечаний */
printf("|---------------------------------------------|\n");
printf("| Примечание: Х - художественная литература; |\n");
printf("| У - учебная литература; |\n");
printf("| С - справочная литература |\n");
printf("-----------------------------------------------\n");
return 0;
}
volvo
Цитата
Помогите найти ошибку
Ошибку в чем? Программа компилируется прекрасно. Как обрабатывает введенные данные - не знаю, потому что
1) не знаю, что программа должна делать (Задание где? Что вводить надо? Почему под "название" выделяется только один символ? Мне это непонятно...)
2) не знаю, что ты вводишь.

Итого, наблюдаю только 2 твои ошибки:
1) название темы, за которое она в принципе может быть и закрыта, а отвечать просто так - не хочется. Приведи топик в порядок, получишь более развернутый ответ;
2) неиспользование тегов CODE, что приведет к аналогичному результату...
Till
ой извените, забыл самое главное из-за этой мороки вот задание

Каталог библиотеки

Автор книги Название Год выпуска Группа

Сенкевич Потоп 1978 Х
Ландау Механика 1989 У
Дойль Сумчатые 1990 C

Примечание: Х - художественная литература;
У - учебная литература; С - справочная литература

1. Введите: Автор книги, Название, Год выпуска, Группа > Сенкевич Потоп 1978 Х
2. Введите: Автор книги, Название, Год выпуска, Группа > Ландау Механика 1989 У
3. Введите: Автор книги, Название, Год выпуска, Группа > Дойль Сумчатые 1990 C

И дложна получится таблица с этими данными, но чтот она не получается, в итоге данные не вписываются в таблицу
Account
А указанная volvo ошибка случаем не влияет? (имею ввиду название в один символ)
Измени название на размерность как у автора и попробуй?
Lapp
М
Срочно приведи тему в соответствие с Правилами (пп. 4 и 5)

Till
усё, я зделал как надо
Lapp
Цитата(Till @ 7.01.2009 20:57) *
усё, я зделал как надо
Ты смеешься?
Информативность подразумевает информацию о ЗАДАЧЕ. Коротко опиши задачу. Например: реализация каталога.
volvo
Till, смотри, что ты вводишь:
Сенкевич Потоп 1978 Х

и что читаешь:
 scanf("%s",name1); // строку
scanf("%c",&sc1); // символ
scanf("%d",&cnt1); // целое число (int, а не unsigned, кстати !!!)
scanf("%f",&sq1); // вещественное число
Тебе не кажется, что и читать надо то, что вводится, по крайней мере в том порядке, в котором данные ДОЛЖНЫ следовать? Читай ДВЕ строки, потом одно целое, и один символ...
Till
Цитата(volvo @ 7.01.2009 20:20) *

Till, смотри, что ты вводишь:
Сенкевич Потоп 1978 Х

и что читаешь:
 scanf("%s",name1); // строку
scanf("%c",&sc1); // символ
scanf("%d",&cnt1); // целое число (int, а не unsigned, кстати !!!)
scanf("%f",&sq1); // вещественное число
Тебе не кажется, что и читать надо то, что вводится, по крайней мере в том порядке, в котором данные ДОЛЖНЫ следовать? Читай ДВЕ строки, потом одно целое, и один символ...

спасибо, всё получилось, я действительно не туда посмотрел... good.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.