C++ Неправильное выполнеиние кода

Дан массив. Каждая запись содержит три поля: ФИО, номер группы, кол-во учащихся. Вывести на экран ФИО руководителя и номер группы, где больше всего учащихся. Если таких групп несколько, то вывести их общее количество.

#include <iostream>
#include <conio.h>
#define _CRT_SECURE_NO_WARNINGS

void main()
{
    using namespace std;
    setlocale(LC_ALL, "Russian");
    const int n = 3;
    struct group {
        char fio[100];
        int g, kol;
    };
    static group grp[n];
    int i, j, ng, max, kg;
    string fav;
    max = 0; kg = 1; fav = "к";
    for (i = 0; i < n; i++) {
        printf("Введите [%d] элементы структуры\n", i);
        cin >> grp[i].fio; cin >> grp[i].g; cin >> grp[i].kol;
        if (grp[i].kol >= max) {
            fav = grp[i].fio;
            max = max + grp[i].kol;
            ng = grp[i].g;
            kg++;
        }
    }
    if (kg = 1) cout << "ФИО преподавателя - " << fav << "\nНомер группы - " << ng << " " << max;
    if (kg > 1) cout << "Общее кол-во учащихся = " << max;
    cout << kg;
}

Он не выводит общее кол-во учащихся если групп больше одной. Почему переменная к переменной kg не прибавляется единица, почему она вечно равна единице?


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