Вывести учеников, которые не получили ни одной тройки за последнюю четверть - 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); };
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
stdio.h
для работы с вводом/выводомstdlib.h
для работы с памятьюstring.h
для работы со строкамиconio.h
для работы с функциейgetch()
, которая нужна для ожидания нажатия клавиши после вывода информации на экран
- Создаем структуру данных
book
, которая представляет собой информацию об ученике - Выделяем память под массив структур
book
с помощью функцииmalloc()
- Заполняем массив структур данными, введенными пользователем с помощью функции
scanf()
- Выводим на экран список учеников, которые не получили ни одной тройки за последнюю четверть
- Используем условное выражение
if
, чтобы проверить, была ли получена тройка по каждому предмету - Если тройка не была получена, выводим на экран данные ученика
- Используем условное выражение
- Освобождаем память, выделенную под массив структур, с помощью функции
free()
- Завершаем работу программы с помощью функции
getch()
, которая ожидает нажатия клавиши после вывода информации на экран
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д