C/C++

Сделать в с++ очень нужно

Известна сумма очков, набранных каждой из 20 команд-участниц чемпионата
по футболу. Определить сумму очков, набранных командами, занявшими в
чемпионате три первых места
#include <iostream>

using namespace std;

int find_i_max(int * A, const int q)
{
int i = 0;
for(int x = 1; x < q; x++)
if(A[x] > A[i]) i = x;
return i;
}

int count_num(int * A, const int q, int num)
{
int count = 0;
for(int x = 0; x < q; x++)
if(A[x] == A[num]) count++;
return count;
}

int find_next_max(int * A, const int q, int max)
{
int next = 0;
for(int x = 1; x < q; x++)
{
if(A[x] > A[next] && A[x] < A[max])
{
next = x;
}
else if(A[next] == A[max])
{
next = x;
}
}
return next;
}

int main()
{
const int q = 20;
int A[q];
cout << "Введите суммы очков каждой из команд." << endl;
for(int x = 0; x < q; x++)
{
cout << "Сумма очков " << x + 1 << " команды равна ";
cin >> A[x];
}
int max1, max2, max3; // для первых трёх команд по кол-ву очков
max1 = find_i_max(A,q);
int count;
count = count_num(A,q,max1);
if(count > 2)
{
max3 = max2 = max1;
}
else if(count > 1)
{
max2 = max1;
max3 = find_next_max(A,q,max2);
}
else
{
max2 = find_next_max(A,q,max1);
count = count_num(A,q,max2);
if(count > 1)
{
max3 = max2;
}
else
{
max3 = find_next_max(A,q,max2);
}
}

cout << "Сумма очков трёх команд, занявших первые три места равна " << A[max1] + A[max2] + A[max3] << '.' << endl;
return 0;
}
СВ
Сергей Виноградов
60 283
Лучший ответ