Вывести учеников, которые не получили ни одной тройки за последнюю четверть - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Uses crt;
Type
book=Record
fam: String;
oc1: Byte;
oc2: Byte;
oc3: Byte;
klass: String;
end;
Var
x: Array [1..20] of book;
i,n: Byte;
BEGIN
Clrscr;
Writeln('Кол-во учеников не более 20 : '); Readln(n);
For i:=1 to n do
begin
  Write('Введите фамилию ученика: '); Readln(x[i].fam);
  Write('Введите 1 оценку: '); Readln(x[i].oc1);
  Write('Введите 2 оценку: '); Readln(x[i].oc2);
  Write('Введите 3 оценку: '); Readln(x[i].oc3);
  Write('В каком классе он учится? '); Readln(x[i].klass);
end;
Writeln;
Writeln('Ученики, которые не получили ни одной тройки за последнюю четверть:');
For i:=1 to n do
If (x[i].oc1<>3) and (x[i].oc2<>3) and (x[i].oc3<>3) Then
Writeln(x[i].fam,'>>>',x[i].klass);
Readln
END.

Решение задачи: «Вывести учеников, которые не получили ни одной тройки за последнюю четверть»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
typedef unsigned char byte;
struct book {
char fam[50];
byte oc1;
byte oc2;
byte oc3;
char klass[10];
} book;
struct book *x;
byte i,n;
void main(int argc, const char* argv[])
{
//clrscr;
printf("%s","Кол-во учеников не более 20 : "); scanf("%ui",&n);
x = malloc(sizeof(book)*n);
memset(x,0,sizeof(book)*n);
for( i = 0; i < n; i++)
{
printf("%s","Введите фамилию ученика: "); scanf("%s",x[i].fam);
printf("%s","Введите 1 оценку: "); scanf("%ui",&x[i].oc1);
printf("%s","Введите 2 оценку: "); scanf("%ui",&x[i].oc2);
printf("%s","Введите 3 оценку: "); scanf("%ui",&x[i].oc3);
printf("%s","В каком классе он учится? "); scanf("%s",x[i].klass);
}
puts("Ученики, которые не получили ни одной тройки за последнюю четверть:");
for( i = 0; i < n; i++) {
if ((x[i].oc1!=3) && (x[i].oc2!=3) && (x[i].oc3!=3)) 
printf("%s >>> %s\n\r", x[i].fam, x[i].klass);
};
getch();
free(x);
};

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

  1. Включаем необходимые заголовочные файлы:
    • stdio.h для работы с вводом/выводом
    • stdlib.h для работы с памятью
    • string.h для работы со строками
    • conio.h для работы с функцией getch(), которая нужна для ожидания нажатия клавиши после вывода информации на экран
  2. Создаем структуру данных book, которая представляет собой информацию об ученике
  3. Выделяем память под массив структур book с помощью функции malloc()
  4. Заполняем массив структур данными, введенными пользователем с помощью функции scanf()
  5. Выводим на экран список учеников, которые не получили ни одной тройки за последнюю четверть
    • Используем условное выражение if, чтобы проверить, была ли получена тройка по каждому предмету
    • Если тройка не была получена, выводим на экран данные ученика
  6. Освобождаем память, выделенную под массив структур, с помощью функции free()
  7. Завершаем работу программы с помощью функции getch(), которая ожидает нажатия клавиши после вывода информации на экран

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


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

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

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