Построение таблицы процентов голосов, отданных различным командам, претендентам на первое место, последнее место и на первую тройку (Лабораторная работа № 5), страница 2

            }

          while(!(feof(f)))                 //пока не конец файла

      { fscanf(f," %d ",&num);         //считываем и прибавляем команде с соотв. номером единицу

              table.prognoz[num-1].first=table.prognoz[num-1].first+1;

              fscanf(f," %d ",&num); if(num>N)printf("table full\n");

              table.prognoz[num-1].last=table.prognoz[num-1].last+1;

              fscanf(f," %d ",&num); if(num>N)printf("table full\n");

              table.prognoz[num-1].three=table.prognoz[num-1].three+1;

              fscanf(f," %d ",&num); if(num>N)printf("table full\n");

              table.prognoz[num-1].three=table.prognoz[num-1].three+1;

              fscanf(f," %d ",&num); if(num>N)printf("table full\n");

              table.prognoz[num-1].three=table.prognoz[num-1].three+1;

              i++;

            }

    for( k=0 ; k<N ; k++)    //начало цикла сортировки

      { max=table.prognoz[k].first+table.prognoz[k].three-table.prognoz[k].last;

//пристваиваем максимаьному значению значение первое неотсортированной части

       t=k;

        for(j=k+1;j<N;j++)    //мы проходим всю неотсортированную часть в поиске макс

          { mid=table.prognoz[j].first+table.prognoz[j].three-table.prognoz[j].last;

            if(mid>max)

              { t=j;

                max=mid;

              }

             }

        move(table,t,k);   //добавляем в конец отсортированной части в таблице найденный макс

       }

    fprintf(f1,"#team   first   last   three");  //записываем в файл результаты, предварительно сделав из них проценты

    for ( k=0;k<N;k++)

            { fprintf(f1,"\nteam #%d",table.prognoz[k].name);

              table.prognoz[k].first=table.prognoz[k].first/i*100;

                    fprintf(f1,"  %.1f",table.prognoz[k].first);

              table.prognoz[k].last=table.prognoz[k].last/i*100;

                    fprintf(f1,"  %.1f",table.prognoz[k].last);

              table.prognoz[k].three=table.prognoz[k].three/i*100;

                    fprintf(f1,"  %.1f",table.prognoz[k].three);

            }

          fclose(f); // закрываем файлы

    fclose(f1);

   }

6.Тесты

Дано

Результат

1 2 1 6 8

9 5 9 8 6

5 6 5 8 7

5 3 6 5 4

#team                   first%            %last            %three

team #1                25                 0                 25               

team #2                0                  25               0                

team #3                0                  25               0                

team #4                0                  0                 25               

team #5                50                 25               50               

team #6                0                  25               75               

team #7                0                  0                 25               

team #8                0                  0                 75               

team #9                25                 0                 25    

7 8 9 5 7

1 8 6 1 2

8 7 6 8 6

1 9 5 2 1

9 5 9 7 6

#team                   first%            %last            %three

team #1                40.0              0.0               40.0            

team #2                0.0                0.0               40.0            

team #3                0.0                0.0               0.0              

team #4                0.0                0.0               0.0              

team #5                0.0                20.0             40.0            

team #6                0.0                0.0               80.0            

team #7                20.0              20.0             40.0            

team #8                20.0              40.0             20.0            

team #9                20.0              20.0             40.0  

1 5 8 9 1

2 5 7 8 2

3 6 2 3 7

#team                 first%            %last           %three

team #1               33.3              0.0              33.3            

team #2               33.3              0.0              66.7            

team #3               33.3              0.0              33.3            

team #4               0.0                0.0              0.0              

team #5               0.0                66.7            0.0              

team #6               0.0                33.3            0.0              

team #7               0.0                0.0              66.7            

team #8               0.0                0.0              66.7            

 team #9              0.0                0.0              33.3

7. Результаты работы программы

Программа работает верно, что подтверждается тестами.