Структура.Не выводится информация о студентах конкретной группы - C (СИ)
Формулировка задачи:
Дана структура из 5ти студентов. Вводятся их данные(фамилия,имя,отчество,факультет,группа,курс,стипендия.).Нужно вывести информацию о студентах конкретной группы.Программа написана,но ничего не выводиться. Подскажите в чём ошибка.
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
struct student {
char prizv[10];
char name[10];
char pobat[10];
char fakult[10];
char grup[10];
int curs;
int stip;};
main ()
{
int n,i,j;
int max,min,k,c,crs;
char grp[10];
struct student x[100];
printf("\n kilkist=");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\n Prizvushche:");
scanf("%s",& x[i].prizv);
printf("\n Name:");
scanf("%s",& x[i].name);
printf("\n Po-batcovi:");
scanf("%s",& x[i].pobat);
printf("\n Fakultet:");
scanf("%s",& x[i].fakult);
printf("\n Grupa:");
scanf ("%s",&x[i].grup);
printf("\n cyrs:");
scanf ("%d",&x[i].curs);
printf("\n stipendia:");
scanf ("%d",&x[i].stip);
}
printf("\n grupa=");
scanf("%s",&grp[10]);
for(i=0;i<n;i++)
{if(x[i].grup==grp)
{
printf("%s,",x[i].prizv,",");
printf("%s,",x[i].name,",");
printf("%s,",x[i].pobat,",");
printf("%s,",x[i].fakult,",");
printf("%s,",x[i].grup,",");
printf("%d,",x[i].curs,",");
printf("%d.",x[i].stip,",");
}
}
getch();
return 0;
}Решение задачи: «Структура.Не выводится информация о студентах конкретной группы»
textual
Листинг программы
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
struct student
{
char prizv[10];
char name[10];
char pobat[10];
char fakult[10];
char grup[10];
int curs;
int stip;
};
int main ()
{
int n,i,j;
int max,min,k,c,crs;
char grp[10];
student x[100];
printf("\n kilkist=");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\n Prizvushche:");
scanf("%s", x[i].prizv);
printf("\n Name:");
scanf("%s",x[i].name);
printf("\n Po-batcovi:");
scanf("%s",x[i].pobat);
printf("\n Fakultet:");
scanf("%s",x[i].fakult);
printf("\n Grupa:");
scanf ("%s",x[i].grup);
printf("\n cyrs:");
scanf ("%d",&x[i].curs);
printf("\n stipendia:");
scanf ("%d",&x[i].stip);
}
printf("\n grupa=");
scanf("%s",grp);
for(i=0;i<n;i++)
{
if(strcmp(x[i].grup,grp)==0)
{
printf("%s ",x[i].prizv);
printf("%s ",x[i].name);
printf("%s ",x[i].pobat);
printf("%s ",x[i].fakult);
printf("%d ",x[i].curs);
printf("%d ",x[i].stip);
}
}
getch();
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы:
, , , , . - Определяется структура student, которая содержит информацию о студенте: его фамилию, имя, отчество, факультет, группу, номер курса и размер стипендии.
- В функции main() объявляются переменные: n - количество студентов; i, j - индексы для цикла; max, min - для определения минимального и максимального размера стипендии; k - используется в цикле; c - используется в цикле; crs - номер курса; * grp - строка, в которую будет занесен номер группы для вывода информации о студентах этой группы.
- С помощью функции scanf() с клавиатуры считывается количество студентов (n).
- В цикле for(i=0;i<n;i++) считываются данные о каждом студенте и сохраняются в массиве x.
- После считывания всех данных о студентах, пользователю предлагается ввести номер группы для вывода информации о студентах этой группы.
- В цикле for(i=0;i<n;i++) с помощью условного оператора if(strcmp(x[i].grup,grp)==0) проверяется, совпадает ли введенная группа с группой каждого студента.
- Если условие выполняется, то выводится информация о данном студенте: фамилия, имя, отчество, факультет, группа, номер курса и размер стипендии.
- В конце программы вызывается функция getch() для приостановки выполнения программы до тех пор, пока пользователь не нажмет клавишу.
- Возвращается 0, что означает успешный конец работы программы.