Perchč non incrementi il contatore i. Quando hai 40 il puntatore legge per primo il 4, poi fai atoi(40N50W) e ti trova 40, ma al ciclo successivo legge 0 quindi rifa atoi(0N50W) che č uguale a 0.Originariamente inviato da robyp
[...]
Perchč se digito 40 in numero mi stampa 400, nonostante inizio->percorso[i]).Ho notato che nel while mi cicla una volta in pių di quello che serve.percorso[i] č un singolo carattere!
Grazie
Aggiungi questo while, cosė dovrebbe andare:codice:for(i=0;(inizio->percorso[i])!='\0'; ){ numero=0; while((inizio->percorso[i]!='N')&& (inizio->percorso[i]!='S')&& (inizio->percorso[i]!='W')&& (inizio->percorso[i]!='E')){ numero=numero*10+atoi(&(inizio->percorso[i])); printf("atoi:%i %i\n",i,numero); i++; while((percorso[i]!='N')&& (percorso[i]!='S')&& (percorso[i]!='W')&& (percorso[i]!='E'))i++; }//end while if (inizio->percorso[i]=='N'){y=y+numero;}//se vado a nord incremento y if (inizio->percorso[i]=='S'){y=y-numero;}//sud decremento if (inizio->percorso[i]=='E'){x=x+numero;}//est incremento x if (inizio->percorso[i]=='W'){x=x-numero;}//ovest decremento x i++; }//end for![]()

Rispondi quotando