Вывести среднее значение оценок студента, у кого есть двойки - C (СИ)

Узнай цену своей работы

Формулировка задачи:

ребят помогите не могу понять в чем проблема у меня. программа должна высчитывать среднее значение у кого есть хотя бы одна оценка 2. мало того не считает так еще и иероглифы какие то. помогите пожалуйста

Решение задачи: «Вывести среднее значение оценок студента, у кого есть двойки»

textual
Листинг программы
FILE *f;
  struct STUDENT tz;
  int i, k, s, j;
  char buff[36];
  if ((f = fopen("ASDDSA.TXT", "r")) == NULL)
  {
    puts(" fale ASDDSA.TXT He Hau`geH");
    return 0;
  }
  puts("\nFamiliya I.O.   Sr. Ball   Ocenki");
  puts("---------------------------");
  while (fgets(buff, sizeof(char) * 36, f) != NULL)
  {
    int flg = 0;
    for(int i=0; buff[i+1]!='\0'; i++){
      if(buff[i]==' '){
        flg++;}
      if(flg!=2){
        tz.fio[i]=buff[i];
        tz.fio[i+1]='\0';}
      if(flg==2){
        tz.oc[i - strlen(tz.fio) - 1]=buff[i];
        tz.oc[i - strlen(tz.fio)]='\0';}
    }
    for (i = 0, s = 0, k = 0; i < 5; i++)
    {
      if (tz.oc[i] == '2')
        s += tz.oc[i] - '0';
      k++;
    }
    if (k != 0)
    {
      tz.fio[14] = '\0';
      printf("%s   %.1f \n", tz.fio, (float)s / 5);
      for (j = 0; j < 5; j++)
        printf(" %c", tz.oc[j]);
      printf("\n");
    }
  }
  fclose(f);
  getch();

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

Объяснение действий в коде:

  1. Открытие файла: В этом блоке кода используется функция fopen() для открытия файла ASDDSA.TXT в режиме чтения. Если файл не может быть открыт, программа выводит сообщение об ошибке и завершает работу.
  2. Вывод заголовка: В этом блоке кода выводится заголовок таблицы с помощью функции puts().
  3. Чтение данных из файла: В этом блоке кода используется цикл while, который продолжается до тех пор, пока функция fgets() не вернет NULL, что происходит при достижении конца файла. Функция fgets() считывает строку из файла в буфер buff.
  4. Обработка данных: В этом блоке кода происходит обработка считанной строки. Сначала определяется количество пробелов в строке, затем оценки студента (в формате 22 21 20 19 18) записываются в массив tz.oc, а фамилия и инициалы студента (в формате Иванов И.О.) записываются в массив tz.fio.
  5. Подсчет количества двоек: В этом блоке кода подсчитывается количество двоек в оценках студента.
  6. Вывод информации о студенте: Если количество двоек не равно нулю, то выводится фамилия и инициалы студента, а также среднее значение его оценок. После этого выводятся сами оценки студента.
  7. Закрытие файла: В этом блоке кода используется функция fclose() для закрытия файла.
  8. Ожидание нажатия клавиши: В этом блоке кода программа ожидает, пока пользователь не нажмет клавишу, с помощью функции getch().

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


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

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

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