Вывести школу которая заняла больше всего призовых мест

Полное задание: дан массив структур. На олимпиаде студенты заполняли анкеты: фамилию, номер школы, класс, занятое место. Напечатать списки школ, которые заняли призовые места. Вывести школу, занявшую больше всех призовых мест. Списки школ я вывела. Почему не работает проверка (чтоб одинаковые номера школ не выводились)? Чтоб получить лучшую школу, нашла суму(массив) занятых мест каждой. Отсортировала по убыванию массив сумм. И вывести школу с максимальной суммой. Помогите пожалуйста найти ошибку. Заранее спасибо)

#include <stdio.h>
#include <string.h>

struct student {
    int roll;
   char  name[20];
   int school;
   char form[3];
   int place;

}s[5];
int sum[5];
int main( ) {

    int i; int max = 0;
     for (i = 0; i < 5; ++i) {

        s[i].roll = i + 1;
        printf("\nFor roll number%d,", s[i].roll);
        printf("Enter name of student: ");
        scanf("%s", s[i].name);
        printf("Enter number of school: ");
        scanf("%i", &s[i].school);
        printf("Enter form: ");
        scanf("%s", s[i].form);

        printf("Enter prize place (1,2,3): ");
        scanf("%i", &s[i].place);
        if (s[i].place>3) printf("This place is not prize");

            sum[i] = 1;


    }
    printf("===========================================================================\n");
    printf("\n \t List of schools numbers, which have prize places\n");

    for (i = 0; i < 5; i++) {
         if(s[i].place<=3 && (s[i].school !=s[i+1].school || s[i].school !=s[i+2].school || s[i].school !=s[i+3].school ||s[i].school !=s[i+4].school) ) {
        printf( "%d) ", i + 1);

        printf("%i \t", s[i].school);}

        else
            printf("\t");
    }

     for (i = 0; i < 5; ++i)
     {

         if(s[i].school ==s[i+1].school || s[i].school ==s[i+2].school || s[i].school ==s[i+3].school ||s[i].school ==s[i+4].school){
            sum[i]++;
           }
     }



        for (i = 0; i < 5; ++i)

        {
            for (int j = i + 1; j < 5; ++j)
            {
                if (sum[i] < sum[j])
                {
                   int  a = sum[i];
                    sum[i] = sum[j];
                    sum[j] = a;
                }}
                i=max;

        }

        printf("THE BEST SCHOOL\n");
for(i=0; i<5; i++){
        if(i==max){
printf("%i", s[i].school);}}

    return 0;
}

Ответы (0 шт):