Напечатать фамилии студентов, учащихся на "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 по всем трём предметам.

  1. В начале кода подключаются необходимые библиотеки: stdio.h для работы с выводом на экран, stdlib.h для работы с функцией rand(), string.h для работы со строками.
  2. Затем определяются константы: m - максимальное количество символов в строке (в данном случае это 100), n - количество студентов (в данном случае это 3).
  3. Далее создается структура Sessia, которая содержит информацию о каждом студенте: фамилию, имя отчество, группу и оценки по трём предметам.
  4. В основной части программы создается массив Sessia, и в цикле запрашивается информация о каждом студенте.
  5. После ввода информации о всех студентах, программа запрашивает у пользователя оценку, и в цикле выводит информацию о студентах, которые получили оценку 4 и 5 по всем трём предметам.
  6. Для каждого студента вычисляется средний балл, и если он больше или равен заданной оценке, то выводится информация о студенте и его средний балл.

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы