Доделать программу работы со структурой школа - 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;
}

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

  1. Включаем файл для возможности работы с вводом/выводом данных
  2. Определяем константу N (количество элементов в массиве структур)
  3. Создаем структуру TInfo, которая содержит поля school, graduates и students
  4. Создаем массив info типа struct TInfo с размером N и инициализируем его значениями по умолчанию
  5. Объявляем переменные graduates и students для подсчета количества выпускников и студентов соответственно
  6. Объявляем переменную i для итерации по элементам массива info
  7. В цикле for перебираем все элементы массива info
  8. Прибавляем значение поля graduates каждого элемента к переменной graduates
  9. Прибавляем значение поля students каждого элемента к переменной students
  10. Выводим общее количество выпускников с помощью функции printf
  11. Вычисляем процент выпускников от общего количества студентов и выводим его с помощью функции printf
  12. Возвращаем 0, чтобы указать, что программа успешно завершилась

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


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

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

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