Я пытаюсь использовать массив структур для хранения информации из 5 книг. Я читал книгу, которая довольно распространена на индийском субконтиненте, т.е. «Давайте C», чтобы понять, что является C, так что я готов к изучению K & R.While я пытался реализовать один из примеров для массива структур, я делаю необходимые изменения в примере, но все же я получаю определенные ошибки, и я не могу найти ошибка.Массив структур, не в состоянии использовать
#include<stdio.h>
//void inkfloat(); commented as i am not using any float variable
int main()
{
int i;
struct book
{
char bookname[30];
char authorname[30];
int price;
int book_id;
};
struct book b[5];
for(i=0;i<=4;i++)
{
printf("Enter bookname,authorname, price and book_id for book");
scanf("%s %s %d %d",&b[i].bookname,&b[i].authorname,&b[i].price,&b[i].book_id);
}
for(i=0;i<=4;i++)
{
printf(" %s %s %d %d \n",b[i].bookname,b[i].authorname,b[i].price,b[i].book_id);
}
return 0;
}
/*void inkfloat()
{
float a=0,*b;
b=&a;
a=*b;
}*/
Я получаю выход в
Enter bookname,authorname, price and book_id for book shailendra
Enter bookname,authorname, price and book_id for book let us c
Enter bookname,authorname, price and book_id for bookEnter bookname,authorname, price and book_id for bookEnter bookname,authorname, price and book_id for bookyaswat kanetkar
s, �, -1218811592, -1216872840 l, :, -1218241152, -1218240426 u, ~, -1216874216, 0 c, �, 134513259, 0 y, , -1218653802, -1217138700
Наряду с этим я не могу понять использование inkfloat переменной, которая по книге используется, когда мы используем переменную с плавающей точкой внутри нашего кода и, если не использовал его при использовании переменной float Ошибка придет «Формат с плавающей запятой не связан»
Я видел An array of structures и другие связанные вопросы о stackoverflow, но не могу решить, какую ошибку у меня возникает в моем коде.
ссылку на массив символов? Никогда не видел этого, я думаю, что люди используют char * вместо того, чтобы C рассматривал массивы как указатели на их первый элемент. Почему вы добавляете символ «&»? Согласно scanf doc это не требуется для char []. http://www.cplusplus.com/reference/cstdio/scanf/. – Ricola3D
Некоторые лекции о ссылках и массивах здесь: stackoverflow.com/questions/1106957/pass-array-by-reference-in-c – Ricola3D
@ Ricola3D: В соответствии с предложениями я удалил «&», но все равно получал ту же ошибку – shailendra