Общее число учащихся школ - C (СИ)
Формулировка задачи:
Известны данные о количестве учащихся в каждом из 15 учебных заведений и о типе этого заведения (школа, техникум или училище). Найти общее число учащихся школ.
Помогите написать, желательно с объяснениями. Заранее спасибо!
Решение задачи: «Общее число учащихся школ»
textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
#define N 15
struct learn //создаем структуру
{
int typeoff;
int students;
};
int main()
{
setlocale(LC_ALL,"rus");
int i,sum; //пара перемнных для цмкла и суммирования
struct learn date[N]; // наша структура
for(i=0,sum=0;i<N;i++)//запоняем каждую структуру
{
printf("Выбирете тип заведения №%d.\n 1-школа 2-техникум 3-колледж\n",i+1); //выбираем тип заведения
scanf("%d",&date[i].typeoff);
while(date[i].typeoff>3||date[i].typeoff<1) //проверяем на корректный ввод
{
printf("Недопустимое значение. Повторите ввод.\n 1-школа 2-техникум 3-колледж\n",i+1);
scanf("%d",&date[i].typeoff);
}
printf("Введите количество учащихся в заведении №%d\n",i+1);//ввод кол-ва учащихся
puts("lalarf");
scanf("%d",&date[i].students);
if(date[i].typeoff==1) //и если наш тип школа, то суммируем школьников
sum+=date[i].students;
}
printf("Общее число учащихся в школах - %d",sum);
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с стандартными функциями и вводом-выводом
- Определяем размер массива структур равным 15
- Создаем структуру
learnдля хранения информации об учебном заведении (тип заведения и количество учащихся) - В функции main() устанавливаем русскую локаль для корректного вывода кириллических символов
- Создаем две переменные i и sum типа int для итерации по массиву и суммирования количества учащихся
- Создаем массив структур date[N] для хранения информации об учебных заведениях
- Запускаем цикл for для заполнения каждой структуры в массиве
- Внутри цикла выводим сообщение с предложением выбрать тип заведения и считываем его с помощью функции scanf() в переменную date[i].typeoff
- Добавляем проверку на корректность введенного значения типа заведения (должно быть в диапазоне от 1 до 3)
- Если значение некорректно, выводим сообщение об ошибке и просим ввести значение заново
- Выводим сообщение с просьбой ввести количество учащихся в заведении и считываем его с помощью функции scanf() в переменную date[i].students
- Если тип заведения равен 1 (школа), добавляем количество учащихся к общей сумме sum
- По завершении цикла выводим общее количество учащихся в школах с помощью функции printf()
- Возвращаем 0 из функции main(), что означает успешное выполнение программы