Цикл сортировки ломает вывод програмы, програма отсиртированый список не выводит
Ввести последовательность данных о результатах работы бригады за неделю:
<Номер дня>, <План>, <Фактический выработка>
напечатать таблицу введенных данных. Затем отсортировать их по убыванию процента выполнения плана. Распечатать отсортированы данные, заменив номера дней их наименованиями.
Вот мой код на даный момент
#include <stdio.h>
#define COUNT 2
int main() {
struct brigade {
int day;
double plan;
double result;
double rating;
}brarr[7], payday, *pbr,*pbr1,*pbr2;
int k;
//Введення результатів
for ( k = 0; k < COUNT; ++k) {
printf("\nEnter the number of the day: ");
scanf("%d",&brarr[k].day);
if (brarr[k].day<1||brarr[k].day>8){return 0;}
printf("\nEnter the planed amount of work: ");
scanf("%ld",&brarr[k].plan);
printf("\nEnter the amount of work that was done: ");
scanf("%ld",&brarr[k].result);
}
//обрахунок відсотку виконання плану
for (k = 0; k < COUNT; ++k) {
brarr[k].rating=(brarr[k].result/brarr[k].plan)*100;
}
puts("\n\tThe brigade`s week: ");
for ( k = 0; k < COUNT; ++k) {
printf("Day - %d planned amount of work - %ld amount of done work - %ld day rating - %lf%%\n", brarr[k].day, brarr[k].plan, brarr[k].result, brarr[k].rating);
}
//Цикл сортування
for ( k = 0; k < COUNT; ++k) {
pbr1=brarr; pbr2=brarr+1;
for (; pbr2+COUNT-k;pbr1++,pbr2++) {
if (pbr1->rating < pbr2->rating){
payday=*pbr1;
*pbr1=*pbr2;
*pbr2=payday;
}
}
}
//Виведення відсортованого списку
printf("\n\t Rating`s day list: ");
for (k = 0,pbr=brarr; k <COUNT ; ++k) {
printf("Day - %d Rating - %ld%%\n",pbr->day,pbr->rating);
}
return 0;
}