Доделать программу работы со структурой школа - 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, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д