Напечатать фамилии студентов, учащихся на "4". "5" и их процентное соотношение с другими - C (СИ)
Формулировка задачи:
Ведомость о результатах зимней сессии содержит информацию: фамилия и инициалы студента, номер группы, оценки с 3-х предметов: а) математического анализа, б) алгебры в) программирования. Написать программу, вводит информацию из ведомости и печатает фамилии студентов, учащихся на "4". "5" и их процентное соотношение с другими.
Решение задачи: «Напечатать фамилии студентов, учащихся на "4". "5" и их процентное соотношение с другими»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define m 100
#define n 3
struct Sessia{
char surname[m];
char namePatronymic[m];
char group[m];
int mark[3];};
int main(){
Sessia students[n];
int i, j;
int summ = 0;
bool fl;
float percent;
int bal;
printf("Enter information for the students.\n");
printf("Surname\tN.O.\tGroup\tMath.\t Algeb.\tProg.\n");
for(i = 0; i < n; i++){
scanf("%s %s %s", &students[i].surname, &students[i].namePatronymic, &students[i].group);
for(j = 0; j < 3; j++){
scanf("%d", &students[i].mark[j]);
summ += students[i].mark[j];
}
}
printf("\nPlease enter mark: ");
scanf("%d", &bal);
printf("\nSurname\tN.O.\tGroup\tMath.\t Algeb.\tProg.\tpercent\n");
for(i = 0; i < n; i++){
fl = true;
percent = 0;
for(j = 0; j < 3; j++){
if(students[i].mark[j] < bal){
fl = false;
break;
}
}
if(fl){
printf("%s\t%s\t%s\t", students[i].surname, students[i].namePatronymic, students[i].group);
for(j = 0; j < 3; j++){
percent += students[i].mark[j];
printf("%d\t", students[i].mark[j]);
}
percent = (float(summ) / float(100)) * percent;
printf("%.2f\n", percent);
}
}
return 0;
}
Объяснение кода листинга программы
Код решает задачу по подсчету среднего балла студентов в зависимости от их оценок по трём предметам (математика, алгебра и программирование) и выводит информацию о студентах, которые получили оценку 4 и 5 по всем трём предметам.
- В начале кода подключаются необходимые библиотеки: stdio.h для работы с выводом на экран, stdlib.h для работы с функцией rand(), string.h для работы со строками.
- Затем определяются константы: m - максимальное количество символов в строке (в данном случае это 100), n - количество студентов (в данном случае это 3).
- Далее создается структура Sessia, которая содержит информацию о каждом студенте: фамилию, имя отчество, группу и оценки по трём предметам.
- В основной части программы создается массив Sessia, и в цикле запрашивается информация о каждом студенте.
- После ввода информации о всех студентах, программа запрашивает у пользователя оценку, и в цикле выводит информацию о студентах, которые получили оценку
4и5по всем трём предметам. - Для каждого студента вычисляется средний балл, и если он больше или равен заданной оценке, то выводится информация о студенте и его средний балл.