Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2012, 21:30   #1
Ciel
 
Регистрация: 17.12.2011
Сообщений: 7
По умолчанию Структуры, С.

Доброго вечера.
Программа печати среднего балла для студентов из текстого файла:
Код:
    /*-------------------------------------------------------*/
    /*  Печать среднего балла каждого студента */
    /*-------------------------------------------------------*/

#include <stdio.h>
#include <conio.h>

struct STUDENT
{ char fio[15];   /* фамилия и.о. */
   char oc[7];     /* 5 оценок + '\n' + '\0' */
};


void main()
{ FILE *f;            /* указатель на входной файл */
   struct  STUDENT  tz;  /* текущая запись файла */
   
   int i,
        s;              /* сумма оценок */

   if ((f= fopen("st.txt","r")) == NULL)
     { puts ("st.txt ne naiden");
        return;
     }
   puts ("\nFamilia      I.O.    Sr. Ball");
   puts ("------------------------------");
   while (fgets((char *)&tz, sizeof(struct STUDENT), f) != NULL)
      { for (i=0,s=0; i<5; i++)
           s+=tz.oc[i]-'0';         /*конвертация char в int*/
         tz.fio[14]='\0';        
         printf("%s  %.1f\n", tz.fio, (float)s/5);
      }

   fclose(f);
   getch();
}


Входной файл st.txt:

1                    16        20
-------------------------------
Kranova N.A.         55555
Igraev A.P.          34552
Semenov I.I.         44445
Starin N.V.          34453
Kravcova O.N.        22224
Danilova N.S.        33334
Выводит :
Код:
Familia   I.O       Sr. Ball 
------------------------------
Kranova N.A.          5
Igraev A.P.           4
Semenov I.I.          4
Starin N.V.           4
Kravcova O.N.         2
Danilova N.S.         3
И вроде бы все хорошо, да необходимо подсчитать и вывести средний балл группы студентов, что я пытаюсь реализовать, но безуспешно.
Как "вытащить" полученный средний балл из каждого элемента списка?Где находится значение среднего балла для каждого конкретного студента из списка?Вот этого я не понимаю.
Объясните пожалуйста, если найдется время и желание.
Ciel вне форума Ответить с цитированием
Старый 07.01.2012, 21:36   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

ну а чё растерялись - то?
Цитата:
Код:
s+=tz.oc[i]-'0'; 
(float)s/5
тут вы его нашли для одного студента
что мешает вам завести переменную в которую будем занасить сумму этих балов
и переменную которая будет увеличиваться на 1 при работе с каждой новой структурой!
Потом также поделите и всё
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 07.01.2012, 22:18   #3
Ciel
 
Регистрация: 17.12.2011
Сообщений: 7
По умолчанию

Спасибо, только я потерялся после этих слов :
Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
и переменную которая будет увеличиваться на 1 при работе с каждой новой структурой!
Код:
s+=tz.oc[i]-'0';
выводит значения для каждого студента.
т.е мне в этом цикле for ввести еще один for, который будет осуществлять
Код:
s1+=tz.oc[i]-'0';    /* int s1- та самая переменная для подсчета сумм оценок*/
и переходить на следующего студента в структуре?Тогда каким образом осуществить переход на следующего студента?
Код:
int n=6;      /*кол-во студентов в структуре*/

Последний раз редактировалось Ciel; 07.01.2012 в 22:22.
Ciel вне форума Ответить с цитированием
Старый 07.01.2012, 23:00   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

нда....
короч
алгоритм
Код:
количество_структур = 0;
общий_ср_бал = 0;
пока файл не кончился
    читаем  структуру
    количество структур++
    общий_ср_бал = общий_ср_бал + средний бал для этой структуры
конец
Вывод (общий_ср_бал/количество_структур)
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры c++ Lille Happy Помощь студентам 1 25.11.2010 12:39
структуры sfinks_murka Общие вопросы C/C++ 1 28.03.2010 21:20
Структуры JulLy Общие вопросы C/C++ 12 01.02.2010 09:23
Структуры. Влад-mego Помощь студентам 1 12.04.2009 19:24