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 не прибавляется единица, почему она вечно равна единице?