у меня есть задание, Разработать программу, которая вводит фактические данные из таблицы.
вот задание:
#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;
}
ой извените, забыл самое главное из-за этой мороки вот задание
Каталог библиотеки
Автор книги Название Год выпуска Группа
Сенкевич Потоп 1978 Х
Ландау Механика 1989 У
Дойль Сумчатые 1990 C
Примечание: Х - художественная литература;
У - учебная литература; С - справочная литература
1. Введите: Автор книги, Название, Год выпуска, Группа > Сенкевич Потоп 1978 Х
2. Введите: Автор книги, Название, Год выпуска, Группа > Ландау Механика 1989 У
3. Введите: Автор книги, Название, Год выпуска, Группа > Дойль Сумчатые 1990 C
И дложна получится таблица с этими данными, но чтот она не получается, в итоге данные не вписываются в таблицу
А указанная volvo ошибка случаем не влияет? (имею ввиду название в один символ)
Измени название на размерность как у автора и попробуй?
М | Срочно приведи тему в соответствие с Правилами (пп. 4 и 5) |
усё, я зделал как надо
Till, смотри, что ты вводишь:
Сенкевич Потоп 1978 Х
и что читаешь:
scanf("%s",name1); // строкуТебе не кажется, что и читать надо то, что вводится, по крайней мере в том порядке, в котором данные ДОЛЖНЫ следовать? Читай ДВЕ строки, потом одно целое, и один символ...
scanf("%c",&sc1); // символ
scanf("%d",&cnt1); // целое число (int, а не unsigned, кстати !!!)
scanf("%f",&sq1); // вещественное число
scanf("%s",name1); // строкуТебе не кажется, что и читать надо то, что вводится, по крайней мере в том порядке, в котором данные ДОЛЖНЫ следовать? Читай ДВЕ строки, потом одно целое, и один символ...
scanf("%c",&sc1); // символ
scanf("%d",&cnt1); // целое число (int, а не unsigned, кстати !!!)
scanf("%f",&sq1); // вещественное число