Как использовать gets в цикле - C (СИ)

Формулировка задачи:

Всем привет! Подскажите, пожалуйста, в чем дело.Странно вводятся Фамилии и инициалы второго и последующих студентов.(на скриншоте видно)
#include<stdio.h>
#include<strings.h>
struct STUDENT
{
 char NAME[30];
 int NUMBER;
 int USP[5];//успеваемость
} mas[3];
int main (void)
{ 
 int i,i_usp;
 for(i=0;i<3;i++)
  {
   printf("Введите фамилию и инициалы\n");
   gets(mas[i].NAME);
   printf("Введите номер группы\n");
   scanf("%d", &mas[i].NUMBER);
   printf("Введите оценки через пробел и нажмите Enter\n");
   for(i_usp=0;i_usp<5;i_usp++)
    scanf("%d", &mas[i].USP[i_usp]);
  }
 for(i=0;i<3;i++)
  {
   printf("Фамилия и инициалы=%s    Номер группы=%d     ", mas[i].NAME, mas[i].NUMBER);
   printf("Оценки=");
   for(i_usp=0;i_usp<5;i_usp++)
    printf("%d ",mas[i].USP[i_usp]);
    printf("\n");
  }
}
Огромное спасибо

Код к задаче: «Как использовать gets в цикле - C (СИ)»

textual
#include <stdio.h>
#include <string.h>
 
struct STUDENT
{
    char NAME[30];
    int NUMBER;
    int USP[5];
} mas[3];
 
int main(void)
{
    int i,i_usp;
    for(i=0;i<3;i++)
    {
        printf("Введите фамилию и инициалы\n");
        gets(mas[i].NAME);
        printf("Введите номер группы\n");
        scanf("%d", &mas[i].NUMBER);
        printf("Введите оценки через пробел и нажмите Enter\n");
        for(i_usp=0;i_usp<5;i_usp++)
            scanf("%d", &mas[i].USP[i_usp]);
        getchar();
    }
    for(i=0;i<3;i++)
    {
        printf("Фамилия и инициалы=%s    Номер группы=%d     ", mas[i].NAME, mas[i].NUMBER);
        printf("Оценки=");
        for(i_usp=0;i_usp<5;i_usp++)
            printf("%d ",mas[i].USP[i_usp]);
        printf("\n");
    }
    return 0;
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

8   голосов, оценка 4.000 из 5


СДЕЛАЙТЕ РЕПОСТ