Не получается правильно ввести данные в структуру - C (СИ)
Формулировка задачи:
Не получается правильно ввести данные в структуру, помогите!
#include "stdafx.h"
#include "conio.h"
#include "time.h"
#include "stdlib.h"
int _tmain(int argc, _TCHAR* argv[])
{
struct student
{
char fio[20];
int gr;
int yspev[5];
};
student st[3];
for(int i=0;i<3;i++)
{
printf("Vvedite FIO");
gets(st[i].fio);
printf("Vvedite Gruppy");
scanf("%d",&st[i].gr);
for(int j=0;j<5;j++)
{printf("Predmet nomer %d=",j);
scanf("%d",&st[i].yspev[j]);}
}
getch();
return 0;
}Решение задачи: «Не получается правильно ввести данные в структуру»
textual
Листинг программы
struct student
{
char fio[20];
int gr;
int yspev[5];
};
int main()
{
student st[3];
for(int i=0;i<3;i++)
{
printf("Vvedite FIO");
scanf("%s",&st[i].fio[20]);
printf("Vvedite Gruppy");
scanf("%d",&st[i].gr);
for(int j=0;j<5;j++)
{
printf("Predmet nomer %d=",j);
scanf("%d",&st[i].yspev[j]);
}
}
getch();
return 0;
}
Объяснение кода листинга программы
- Объявляется структура student, которая содержит массив символов fio, целочисленную переменную gr и массив из 5 целочисленных переменных yspev.
- В функции main() создается массив из 3 структур student с именем st.
- Затем в цикле for с переменной i от 0 до 2 (т.е. для каждого элемента массива st) происходит:
- Выводится сообщение
Vvedite FIOи считывается строка (до 20 символов, включая '\0') в переменную st[i].fio. - Выводится сообщение
Vvedite Gruppyи считывается целое число в переменную st[i].gr. - Затем в цикле for с переменной j от 0 до 4 (т.е. для каждого из 5 элементов массива yspev) происходит:
- Выводится сообщение
Predmet nomer %d=и считывается целое число в переменную st[i].yspev[j].
- Выводится сообщение
- В конце функции main() вызывается функция getch() для приостановки выполнения программы до тех пор, пока пользователь не нажмет какую-либо клавишу.
- Возвращается 0, что означает успешное выполнение программы.