Как использовать 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 в цикле»
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; }
Объяснение кода листинга программы
- Объявлены структура данных STUDENT и массив структур mas[3]
- Введен цикл for для обработки каждого элемента массива mas
- В каждой итерации цикла выводится запрос на ввод фамилии и инициалов, которые считываются функцией gets(mas[i].NAME)
- Выводится запрос на ввод номера группы, который считывается функцией scanf(
%d
, &mas[i].NUMBER) - Выводится запрос на ввод оценок через пробел, которые считываются функцией scanf(
%d
, &mas[i].USP[i_usp]) в цикле for - После окончания ввода вызовется функция getchar() для сброса буфера ввода
- После окончания цикла выводится информация о каждом студенте в формате фамилия и инициалы, номер группы, оценки
- Возвращается 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д