Salve, ho un probema con un esercizio dove chiede il confronto tra stringhe praticamente; qui di seguito il testo dell'esercizio:
Specifiche
Aiuta XaRt23 e RoOt45 a trovare il pianeta più grande della galassia. XaRt23 possiede una lista con tutti i diametri dei pianeti presenti nella galassia. L’unità di misura utilizzata nel loro pianeta è il Quar, relativamente piccola, per cui i numeri che descrivo tali diametri sono molto grandi. Scrivi un programma che possa trovare tra tutti i numeri presenti nella lista, quello più grande.
Il file di input contiene 100 task, uno per ogni riga. Ogni riga contiene N+1 valori, separati da uno spazio. Il primo valore corrisponde al numero N di pianeti presenti nella lista. I successivi N valori rappresentano le dimensioni (in Quar) dei diametri dei relativi pianeti.
Il file di output conterrà 100 righe. Ogni riga conterrà un unico valore, ovvero il diametro maggiore tra tutti quelli contenuti nella lista dell'input corrispondente.
Note
il numero N è sempre minore o uguale a 1000;
le dimensioni dei diametri sono numeri interi con, al massimo, 40 cifre.
Esempio
input.txt:
4 3276525753254764275125712 78328263214764866843884 3868328634286863486386784 347634764376754375
6 2345 1823 2344 1643 2352 123
3 25378299384 21452671827 25378299391
output.txt
3868328634286863486386784
2352
25378299391
qui di seguito il mio codice dove in output mi da giusti solo le prime due task, poi per la terza task in poi mi da 0 e non capisco il perchè.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
int N;
string max;
string x,y;
for(int i=0; i<4; i++){
leggi>>N;
max="0";
for(int j=0; j<N; j++){
leggi>>x>>y;
if(x.size()>y.size()){
max=x;
}
}
cout<<max<<endl;
}
}
vi ringrazio anticipatamente.