Доделать программу работы со структурой школа - C (СИ)
Формулировка задачи:
Задание: Дана информация о пяти школах. Запись имеет вид: номер школы, год, количество выпускников, число поступивших в вузы. Вывести данные об общем количестве выпускников и доле поступивших в вуз.
Код программы почти полностью не корректен. Код был взят с другой программы, я пытался переписать для этой программы. Но в прошлом коде было чисто товаров вводимых с клавиатуры и общее количество считалось после введения названия товара. Поэтому никак не могу разобраться как подсчитать общее количество и долю поступивших.
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<locale.h>
#define n 5
main()
{ setlocale(LC_CTYPE,"Russian");
int i,k; float sum;
struct tov{char name[5];float g;int kol,ch;}t;
struct tov mag[n];
//char nazv[5];
printf("\n Введите информацию \n");
for (i=0;i<n;i++)
{
printf("\n номер школы, год, количество выпускников, число поступивших в вуз: ");
scanf("%s%f%d",&t.name,&t.g,&t.kol,&t.ch);
mag[i]=t;
}
for (i=0,sum=0,k=0;i<n;i++)
// if (strcmp(mag[i].name,nazv)==0)
{sum+=mag[i].kol*mag[i].kol;
k++;
}
// printf("ÒîâГ*ðîâ %s %d, ГЁГµ ñòîèìîñòü %7.2f",sum);
getch();
}Решение задачи: «Доделать программу работы со структурой школа»
textual
Листинг программы
#include <stdio.h>
#define N 5
int main()
{
struct TInfo
{
unsigned school;
unsigned graduates;
unsigned students;
} info[N] = {{1, 30, 5},
{2, 17, 3},
{3, 25, 8},
{4, 21, 7},
{5, 15, 3}};
unsigned graduates = 0;
unsigned students = 0;
unsigned i;
for (i = 0; i < N; ++i)
{
graduates += info[i].graduates;
students += info[i].students;
}
printf("total graduates: %u\n", graduates);
printf("percent graduates: %.0f%%\n", (float)graduates / 100 * students);
return 0;
}
Объяснение кода листинга программы
- Включаем файл
для возможности работы с вводом/выводом данных - Определяем константу N (количество элементов в массиве структур)
- Создаем структуру TInfo, которая содержит поля school, graduates и students
- Создаем массив info типа struct TInfo с размером N и инициализируем его значениями по умолчанию
- Объявляем переменные graduates и students для подсчета количества выпускников и студентов соответственно
- Объявляем переменную i для итерации по элементам массива info
- В цикле for перебираем все элементы массива info
- Прибавляем значение поля graduates каждого элемента к переменной graduates
- Прибавляем значение поля students каждого элемента к переменной students
- Выводим общее количество выпускников с помощью функции printf
- Вычисляем процент выпускников от общего количества студентов и выводим его с помощью функции printf
- Возвращаем 0, чтобы указать, что программа успешно завершилась