Вывести фамилии студентов, учащихся на 4 и 5 - C (СИ)
Формулировка задачи:
Ведомость о результатах зимней сессии содержит информацию: фамилия и инициалы студента, номер группы, оценки с 3-х предметов: а) математического анализа, б) алгебры в) программирования. Написать программу, вводит информацию из ведомости и печатает фамилии студентов, учащихся на "4". "5" и их процентное соотношение с другими.
#include <conio.h> #include <stdio.h> struct zimova sesia; { char* PIP; int number; int A[3]; }; void main () { struct zimova sisia X[1000]; int i,j,n; printf ("Kilkist stud="); scanf ("%d", &n); for (i=0; i<n; i++) {printf ("vvedit PIP:"); scanf ("%S", &X[i].PIP); printf ("vvedit N: group"); scanf ("%", &X[i].Number); for (j=0;j<3; j++) printf ("vvedit %d baly", j); scanf ("%d", &x[i].A[j]);
Решение задачи: «Вывести фамилии студентов, учащихся на 4 и 5»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #define n 3 //Кол-во студентов #define m 100 struct Sesia{ //**Структура Данных** char surname[m]; // #Фамилия char name_patronymic[m]; // #Инициалы char group[m]; // #Группа unsigned int number[3]; // #Оценка }; int main(){ int i, j, k; //Счетчик int mark; //Вводимая оценка bool buf; //Флаг Sesia Students[n]; //Массив структур /*Тут можешь до 3-х строк сократить хД*/ printf("Please enter informations for students.\n\n"); for(i = 0; i < n; i++){ printf(" Surname: "); scanf("%s", &Students[i].surname); printf(" N.O.: "); scanf("%s", &Students[i].name_patronymic); printf(" Group: "); scanf("%s", &Students[i].group); printf("\nPlease enter mark for the subjects.\n"); printf(" Mathematical analysis: "); scanf("%d", &Students[i].number[0]); printf(" Algebra: "); scanf("%d", &Students[i].number[1]); printf(" Programming: "); scanf("%d", &Students[i].number[2]); printf("\n-----------------------\n"); } printf("Enter mark: "); scanf("%d", &mark); for(i = 0; i < n; i++){ buf = true; for(j = 0; j < 3; j++){ if(Students[i].number[j] < mark){ buf = false; break; } } if(buf == true){ printf("\n%s %s %s\n", Students[i].surname, Students[i].name_patronymic, Students[i].group); printf(" Mathematical analysis: %d Algebra: %d Programming: %d\n", Students[i].number[0], Students[i].number[1], Students[i].number[2]); } } return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
, , , - Определяем количество студентов (n) и максимальное количество символов в фамилии (m).
- Создаем структуру данных
Sesia
, которая содержит поля: фамилия, инициалы, группа и оценки по трём предметам. - В функции main() создаем массив структур
Sesia
(Students) и инициализируем его нулями. - Запрашиваем у пользователя ввод информации о каждом студенте: фамилию, инициалы, группу и оценки по трём предметам.
- Затем запрашиваем у пользователя оценку, по которой будет производиться отбор студентов.
- Далее в цикле проходим по всем студентам и проверяем, получена ли оценка по каждому предмету больше или равна текущей оценке.
- Если условие выполняется, то выводим информацию о студенте.
- По завершении работы программы возвращаем 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д