Oppure

Loading
14/08/09 17:55
edo42
Ho un problema su questo codice:
for(int a = 0; a < 50; a++)
			{
				int b;
				if(arraynum[++a] != "0")
				{
					--a;
					b=a;
				}
				else if(arraynum[a] == "0")
				{
					continue;
				}
				else if(operatore[a-1] == "0")
				{
					break;
				}
				if(operatore[a-1] == "*")
				{
					// 1.1.4.0 Moltiplico...
					Multiply(Toint(arraynum[b]), Toint(arrayden[b]), Toint(arraynum[a+1]), Toint(arrayden[a+1]));
					// 1.1.4.0 Cancello dati usati e metto i risultati a posto
					arraynum[a+1] = "0";
					arrayden[a+1] = "0";
					arraynum[b] = Tostring(risultatonum);
					arrayden[b] = Tostring(risultatoden);
				}
				if(operatore[a] == "/")
				{
					// 1.1.4.0 Moltiplico...
					Divide(Toint(arraynum[a]), Toint(arrayden[a]), Toint(arraynum[a+1]), Toint(arrayden[a+1]));
					// 1.1.4.0 Cancello dati usati e metto i risultati a posto
					arraynum[a+1] = "0";
					arrayden[a+1] = "0";
					arraynum[a] = Tostring(risultatonum);
					arrayden[a] = Tostring(risultatoden);
				}
				
			}

else if(operatore[a-1] == "0";) break; dovrebbe fare uscire il programma dal ciclo, ma mettendo dei punti di interruzione, pare che questo pezzo di codice non venga eseguito non capisco il motivo.
Uso gcc.
Sapete spiegarmi perchè non viene mai eseguito e poi genera errore perchè va logicamente fuori dalli indice dell'array?
aaa
16/08/09 0:33
pierotofy
Posta tutto il sorgente; o almeno l'intero file. Questo e' solo un pezzo.

Prova con:

else if(operatore[a-1] == '0') break;


Apice singolo invece che doppio-apice.
Il mio blog: piero.dev
16/08/09 5:16
edo42
Ho risolto il problema; per fare prima e non inserire i valori tutte le volte ho tolto cin>>input; e ho messo input = "il valore"; in questo modo il while esterno che non ho riportato nel codice sopra) continuava a girare e a dare lo stesso input. Input non era mai uguale a "fine" e allora continuava a calcolare all'infinito senza fermarsi.

P.S. Credo che un file intero non ci stia dato che sono 785 righe di codice precise...
aaa
17/08/09 1:16
pierotofy
E' possibile allegare files di 2mb tramite il sito; guarda lo screenshot.
Il mio blog: piero.dev
17/08/09 5:51
edo42
Grazie non l'avevo mai notato...
aaa