Вывод на консоль с файла по заданным параметрам - C (СИ)

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

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

Как сделать так, чтобы вывести на экран всю информацию при заданном параметре, если вводим несколько студентов, то как потом вывести тех у кого средний бал не ниже заданного ?
#include <stdio.h>
#include<stdlib.h>
#include<conio.h>
#include <string.h>
FILE *fp;
int main(){
    struct
     {
        char studentInfo[20];
        char group[20];
        int averageRating;
        int grants;
    } book; 
 
       char  studentInfo_[20];
       int rec_count=0;
 
     if ((fp = fopen("C:\\Users\\Михаил\\Documents\\CPP\\output.txt", "w")) == NULL)
       {
         printf("\n file not open");
         exit(1);
        }
 
     while(1){
        
         printf("\n PIB studenta ");
         scanf("%s",studentInfo_);
         if (strcmp(studentInfo_, "***")==0) break;
         strcpy(book.studentInfo,studentInfo_);
         printf("\n grupa ");
         scanf("%s",book.group);
         printf("\n seredniy bal ");
         scanf("%d",&book.averageRating);
         printf("\n stipendiya ");
         scanf("%d",&book.grants);

         fprintf(fp,"%s  \n",book.studentInfo);
         fprintf(fp,"\n%s  ",book.group);
         fprintf(fp,"%d \n",book.averageRating);
         fprintf(fp,"%d \n",book.grants);
         rec_count++;//Есть очередная запись
     }
 
     printf("\n Inputs %d records",rec_count);
     void clear_kb(void);// Очистка буфера ввода
     fclose(fp); 

    char student[20];
    char gr[20];
    int avRate;
    int grants;

     if ((fp = fopen("C:\\Users\\Михаил\\Documents\\CPP\\output.txt", "r")) == NULL)
       {
         printf("\n file not open");
         exit(1);
       }

     while(!feof(fp)) 
    {
     void clear_kb(void);

         fscanf(fp,"%s",student);
         fscanf(fp,"%s",gr);
         fscanf(fp,"%d",&avRate);
         fscanf(fp,"%d",&grants);
 
         int vBal;
         printf("\n Vvedite srednii bal: ");
         scanf("%d",&vBal);
        if (book.averageRating>vBal)
          {
         printf("\n %s  ",student);
         printf(" %20s  ",gr);
         printf("%6d  ",avRate);
         printf("%6d ",grants);
          }
     }
     void clear_kb(void);
     fclose(fp);
     getch();
     return 0;
     }

Решение задачи: «Вывод на консоль с файла по заданным параметрам»

textual
Листинг программы
 int vBal;
         printf("\n Vvedite srednii bal: ");
         scanf("%d",&vBal);
        if (book.averageRating>vBal)
          {
         printf("\n %s  ",student);
         printf(" %20s  ",gr);
         printf("%6d  ",avRate);
         printf("%6d ",grants);
          }

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

  1. Объявление переменной vBal типа int
  2. Вывод сообщения с просьбой ввести средний балл
  3. Ввод среднего балла с помощью функции scanf в переменную vBal
  4. Проверка условия if (book.averageRating>vBal)
  5. Если условие истинно, то переход к следующему шагу
  6. Вывод значения переменной student (название книги)
  7. Вывод значения переменной gr (группа книги)
  8. Вывод значения переменной avRate (средний рейтинг книги)
  9. Вывод значения переменной grants (количество грантов книги)
  10. Если условие ложно, то выполнение кода завершается

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


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

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

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