Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Вопрос по Си (http://forum.oszone.net/showthread.php?t=58394)

Grekalov 21-12-2005 16:58 385472

Вопрос по Си
 
Доброго времени суток! Решил заняться изучением программирования и начал с книги М.Уэйт, С.Прата, Д.Мартин "Язык Си" Москва "МИР" 1988 г. Ошибок в листинге программ достаточно, но удавалось исправить их самому (до вчерашнего вечера). В нижеприведенном примере текста программы не могу понять, почему не отрабатывает до конца программа, доходит до ввода цены и все. Подскажите начинающему???
Вот сам листинг:
# include <stdio.h>
# define MAXTIT 40
# define MAXAUT 40
# define MAXBOX 100
# define STOP " "
struct book
{
char title [MAXTIT];
char autor [MAXAUT];
float value;
};
main()
{
struct book libry [MAXBOX];
int count=0;
int index;
printf("Vvedite nazvanie knigi\n");
printf("Najmite klavishu [ENTER] v nachale stroki dlya ostanova\n");
while (strcmp(gets(libry [count].title), STOP)!=0 && count<MAXBOX)
{
printf("Vvedite teper familiyu avtora\n");
gets(libry [count].autor);
printf ("Vvedite teper cenu\n");
scanf("%f", &libry [count++].value);
while (getchar()!='n');
if (count<MAXBOX)
printf ("Vvedite nazvanie sleduyushey knigi\n");
}
printf ("Vot spisok knig:\n");
for (index=0; index<count;index++)
printf ("%s, $s: %2.2\n", libry [index].title,
libry [index].autor, libry [index].value);
}

DevilHaker 22-12-2005 00:59 385650

Сверху попробуй прописать так:
# include <iostream.h>

lehha 22-12-2005 08:30 385700

Grekalov
вместо scanf("%f", &libry [count++].value);
попобуй scanf("%f", libry [count++].value);

Grekalov 22-12-2005 08:46 385701

Вот здесь scanf("%f", &libry [count++].value); сделал так scanf("%2.2f", &libry [count++].value);, заработало :) Всем спасибо за консультации!


Время: 04:32.

Время: 04:32.
© OSzone.net 2001-