# Esercizio "easy2" 75/100

**URL:** <https://forum.olinfo.it/t/esercizio-easy2-75-100/4539>\
**Category:** Aiuto\
**Created:** [29 Marzo 2017, 1:22pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539 "2017-03-29T13:22:51Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![Void.Think](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/v/c57346/32.png) [@Void.Think](https://forum.olinfo.it/u/Void.Think)\
**Post date:** [29 Marzo 2017, 1:22pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/1 "2017-03-29T13:22:51Z")

</div>

Ciao ragazzi, ho fatto l’esercizio "Trova la somma pari massima (easy2) " e anche se il programma funziona perfettamente anche nel tempo di esecuzione e nello spazio occupato, mi assegna 75/100.

---

<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:** [29 Marzo 2017, 2:16pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/2 "2017-03-29T14:16:05Z")

</div>

Prova a cliccare sul numero della sottoposizione, sulla sinistra, in modo da leggere che errore c’è stato nei casi che hanno fallito 😉

---

<div class="post-metadata">

**Author:** ![Void.Think](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/v/c57346/32.png) [@Void.Think](https://forum.olinfo.it/u/Void.Think)\
**Post date:** [29 Marzo 2017, 4:38pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/3 "2017-03-29T16:38:21Z")

</div>

Grazie del consiglio @wil93. Ci sono 20 risultati di output, di cui solo 5 di essi sono sbagliati, ma non capisco dove sistemare il programma dato che c’è 1 solo output nel codice…

---

<div class="post-metadata">

**Author:** ![db2000](https://forum.olinfo.it/user_avatar/forum.olinfo.it/db2000/32/391_2.png) [@db2000](https://forum.olinfo.it/u/db2000)\
**Post date:** [29 Marzo 2017, 4:56pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/4 "2017-03-29T16:56:28Z")

</div>

I 20 risultati di output sono relativi a 20 risultati di input diversi: come se usassi il programma 20 volte (con input diversi), per intenderci.  
Quindi, su 20 casi, 5 di questi sono sbagliati, ora dobbiamo capire perché 😊  
Puoi postare il codice oppure spiegare la tua idea di soluzione?

---

<div class="post-metadata">

**Author:** ![Void.Think](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/v/c57346/32.png) [@Void.Think](https://forum.olinfo.it/u/Void.Think)\
**Post date:** [29 Marzo 2017, 5:03pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/5 "2017-03-29T17:03:16Z")

</div>

```auto
int N,a[100000],b[100000],SP[100000],Max,S=0,j=0,i;
FILE *input, *output;

int main()
{
    input = fopen("input.txt","r");
    output = fopen("output.txt","w");
    fscanf(input,"%d",&N);
    for(i=0; i<N; i++) fscanf(input,"%d %d", &a[i], &b[i]);
    for(i=0; i<N; i++)
    {
        S=a[i]+b[i];
        if( (S%2) == 0 )
        {
            SP[i] = S;
            j++;
        }
    }
    if(j==0) fprintf(output,"%i",-1);
    else
    {
    Max=SP[0];
    for(i=1; i<=j; i++) if(SP[i]>Max) Max=SP[i];
    fprintf(output,"%i",Max);
    }
    fclose(input);
    fclose(output);
}

```

---

<div class="post-metadata">

**Author:** ![paolo](https://forum.olinfo.it/user_avatar/forum.olinfo.it/paolo/32/3203_2.png) [@paolo](https://forum.olinfo.it/u/paolo)\
**Post date:** [29 Marzo 2017, 8:26pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/6 "2017-03-29T20:26:54Z")

</div>

Il ciclo finale controlla una posizione non inizializzata e può causare problemi (cambia da i\<=j a i\<j) 🙂

---

<div class="post-metadata">

**Author:** ![Void.Think](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/v/c57346/32.png) [@Void.Think](https://forum.olinfo.it/u/Void.Think)\
**Post date:** [29 Marzo 2017, 8:51pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/7 "2017-03-29T20:51:05Z")

</div>

@paolo non cambia nulla rispetto a prima. Assegna lo stesso 75/100

---

<div class="post-metadata">

**Author:** ![paolo](https://forum.olinfo.it/user_avatar/forum.olinfo.it/paolo/32/3203_2.png) [@paolo](https://forum.olinfo.it/u/paolo)\
**Post date:** [29 Marzo 2017, 8:57pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/8 "2017-03-29T20:57:23Z")

</div>

Prova a cambiare questo fprintf(output,"%i",-1); in questo fprintf(output,"-1");

---

<div class="post-metadata">

**Author:** ![Void.Think](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/v/c57346/32.png) [@Void.Think](https://forum.olinfo.it/u/Void.Think)\
**Post date:** [29 Marzo 2017, 8:58pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/9 "2017-03-29T20:58:11Z")

</div>

Non credo sia li il problema…

---

<div class="post-metadata">

**Author:** ![db2000](https://forum.olinfo.it/user_avatar/forum.olinfo.it/db2000/32/391_2.png) [@db2000](https://forum.olinfo.it/u/db2000)\
**Post date:** [29 Marzo 2017, 9:05pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/10 "2017-03-29T21:05:16Z")

</div>

Il codice in sé è un pochino contorto, quindi probabilmente hai messo da qualche parte un errore (che non riesco a vedere, in realtà 😂)  
Ad esempio, non capisco come mai l’ultimo ciclo parte da 1  
Prova, al posto di salvarti in un vettore tutte le somme e poi cercare la somma massima, a fare una cosa così:

1. dichiara una variabile massimo e ponila a -1
2. scorri tutti i valori e se a[i] + b[i] % 2 == 0 && a[i] + b[i] \> massimo, sostituisci massimo col nuovo valore trovato

---

<div class="post-metadata">

**Author:** ![Void.Think](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/v/c57346/32.png) [@Void.Think](https://forum.olinfo.it/u/Void.Think)\
**Post date:** [29 Marzo 2017, 9:10pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/11 "2017-03-29T21:10:55Z")

</div>

Il ciclo parte da 1 perchè ho messo prima del ciclo che la variabile Max = SP[0] , così la variabile Max ha un valore ben definito ( primo indice ) e nel ciclo controllo se gli altri elementi dell’array sono maggiori di Max. Nel caso in cui SP[i] \> Max il maggiore sarà SP[i]. e alla fine di tutto ciò potrò far stampare il maggiore.

---

<div class="post-metadata">

**Author:** ![db2000](https://forum.olinfo.it/user_avatar/forum.olinfo.it/db2000/32/391_2.png) [@db2000](https://forum.olinfo.it/u/db2000)\
**Post date:** [29 Marzo 2017, 9:13pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/12 "2017-03-29T21:13:36Z")

</div>

Hai ragione, allora non so proprio.  
Prova a riscrivere tutto da capo o cambiare qualcosa come ti ho suggerito, a volte è veramente l’unica soluzione

---

<div class="post-metadata">

**Author:** ![paolo](https://forum.olinfo.it/user_avatar/forum.olinfo.it/paolo/32/3203_2.png) [@paolo](https://forum.olinfo.it/u/paolo)\
**Post date:** [29 Marzo 2017, 9:16pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/13 "2017-03-29T21:16:49Z")

</div>

L’errore sta che ti salvi le somme sparse nel vettore. Dovresti sostituire

```
if( (S%2) == 0 )
{
    SP[i] = S;
    j++;
}

```

in

```
if( (S%2) == 0 )
{
    SP[j] = S;
    j++;
}
```

---

<div class="post-metadata">

**Author:** ![db2000](https://forum.olinfo.it/user_avatar/forum.olinfo.it/db2000/32/391_2.png) [@db2000](https://forum.olinfo.it/u/db2000)\
**Post date:** [29 Marzo 2017, 9:18pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/14 "2017-03-29T21:18:13Z")

</div>

Teoricamente però il vettore è dichiarato fuori dal main, quindi è tutto inizializzato a 0; quindi, se anche ti salvi le somme sparse (che non è una cosa da fare, lo so bene), che errori potrebbe dare?

---

<div class="post-metadata">

**Author:** ![paolo](https://forum.olinfo.it/user_avatar/forum.olinfo.it/paolo/32/3203_2.png) [@paolo](https://forum.olinfo.it/u/paolo)\
**Post date:** [29 Marzo 2017, 9:19pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/15 "2017-03-29T21:19:17Z")

</div>

Allora il ciclo finale deve arrivare fino a i\<N

---

<div class="post-metadata">

**Author:** ![Void.Think](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/v/c57346/32.png) [@Void.Think](https://forum.olinfo.it/u/Void.Think)\
**Post date:** [29 Marzo 2017, 9:19pm UTC](https://forum.olinfo.it/t/esercizio-easy2-75-100/4539/16 "2017-03-29T21:19:57Z")

</div>

@paolo 100/100 grazie mille a tutti dell’aiuto ragazzi
