Вывести фамилии студентов, учащихся на 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;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы: , , ,
  2. Определяем количество студентов (n) и максимальное количество символов в фамилии (m).
  3. Создаем структуру данных Sesia, которая содержит поля: фамилия, инициалы, группа и оценки по трём предметам.
  4. В функции main() создаем массив структур Sesia (Students) и инициализируем его нулями.
  5. Запрашиваем у пользователя ввод информации о каждом студенте: фамилию, инициалы, группу и оценки по трём предметам.
  6. Затем запрашиваем у пользователя оценку, по которой будет производиться отбор студентов.
  7. Далее в цикле проходим по всем студентам и проверяем, получена ли оценка по каждому предмету больше или равна текущей оценке.
  8. Если условие выполняется, то выводим информацию о студенте.
  9. По завершении работы программы возвращаем 0.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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