Cannoniere, potete aiutarmi?

Salve, sono nuovo di questo sistema. Ho scritto il seguente programma per Cannoniere. Manualmente sembra funzionare tutto, invece sulla piattaforma ottengo un basso risultato. Qualcuno può aiutarmi?

//Programmacannoniere.cpp
#include<iostream>
using namespace std;
int main()
{
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
	int i,j,n;
	int count,countmax, C;
	countmax=0;
	do
	{
		cin>>n;
	}while(n<0 || n>50);
	int vetn[n];
	int vetg[n];
	for(i=0; i<n; i++)
	{
		cin>>vetn[i];
		do
		{
			cin>>vetg[i];
		}while(vetg[i]<0 || vetg[i]>100);
	}
	for(i=0; i<n-1; i++)
	{
		count=vetg[i];
		for(j=i; j<n-1; j++)
		{
		if(vetn[i]==vetn[j+1])
		   {
		        count=count+vetg[j+1];
		   }
		if(count>countmax)
			{
				C=vetn[i];
				countmax=count;				
			}	
		}
	}
	cout<<C<<" "<<countmax;
	return 0;
}

Ciao,

secondo me questo ciclo:

dovrebbe essere sostituito con un semplice:

cin>>vetg[i];

Tuttavia potresti migliorare la soluzione evitando di scorrere tutto l’array delle partite ogni volta che devi contare i goal fatti dal giocatore, salvandoti il numero di goal totali che ogni giocatore ha fatto e aggiornandolo man mano che scorri l’elenco delle partite. :smiley:

1 Mi Piace

Grazie mille Marco Tramontini!
Per quanto riguarda il primo ciclo while, sono obbligato ad inserirlo perché è richiesto dall’esercizio. Invece per quanto concerne il tuo consiglio, sono pienamente d’accordo! Proverò a modificare il mio programma, poi lo testerò nuovamente e le farò sapere.

In che senso è richiesto? Se lo mandi senza il while non prende lo stesso punteggio? :confused: