# Cannoniere, potete aiutarmi?

**URL:** <https://forum.olinfo.it/t/cannoniere-potete-aiutarmi/4200>\
**Category:** Aiuto\
**Created:** [1 Dicembre 2016, 8:13am UTC](https://forum.olinfo.it/t/cannoniere-potete-aiutarmi/4200 "2016-12-01T08:13:23Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![GabrieleMattei](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/g/e480ec/32.png) [@GabrieleMattei](https://forum.olinfo.it/u/GabrieleMattei)\
**Post date:** [1 Dicembre 2016, 8:13am UTC](https://forum.olinfo.it/t/cannoniere-potete-aiutarmi/4200/1 "2016-12-01T08:13:23Z")

</div>

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?

```auto
//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;
}

```

---

<div class="post-metadata">

**Author:** ![marcotramontini](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/m/d26b3c/32.png) [@marcotramontini](https://forum.olinfo.it/u/marcotramontini)\
**Post date:** [1 Dicembre 2016, 5:47pm UTC](https://forum.olinfo.it/t/cannoniere-potete-aiutarmi/4200/2 "2016-12-01T17:47:20Z")

</div>

Ciao,

secondo me questo ciclo:

> [@GabrieleMattei](#):
>
> do {   
>   cin\>\>vetg[i];   
> }while(vetg[i]\<0 || vetg[i]\>100);

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. 😃

---

<div class="post-metadata">

**Author:** ![GabrieleMattei](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/g/e480ec/32.png) [@GabrieleMattei](https://forum.olinfo.it/u/GabrieleMattei)\
**Post date:** [4 Dicembre 2016, 1:09pm UTC](https://forum.olinfo.it/t/cannoniere-potete-aiutarmi/4200/3 "2016-12-04T13:09:58Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![wil93](https://forum.olinfo.it/user_avatar/forum.olinfo.it/wil93/32/2862_2.png) [@wil93](https://forum.olinfo.it/u/wil93)\
**Post date:** [4 Dicembre 2016, 2:13pm UTC](https://forum.olinfo.it/t/cannoniere-potete-aiutarmi/4200/4 "2016-12-04T14:13:11Z")

</div>

> [@GabrieleMattei](#):
>
> Per quanto riguarda il primo ciclo while, sono obbligato ad inserirlo perché è richiesto dall’esercizio

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