

C++ - chyba scitani v cyklu
Ahoj! Tak se zase hlásím s novým problémem :D Píšu poměrně dlouhý program, potřebuji, abych převedl číslo s lomítkem na číslo bez něj. Chtěl jsem to udělat jednoduše stylem - poslední číslo * 10 na 0 + předposlední číslo * 10 na 1 atd. Problémje v tom, že v posledním kroku cyklu se mi nedopíše poslední číslo, ale hodnota proměnné součet se změní na nějaké záporné číslo. Netušíte co s tím? Moc díky
double j = 0; // pocitadlo pro mocneni 10-ky
for(int i = 10; i >= 0; --i){
if(i == 6){
continue; // vyjimka pro lomitko
}else if(cislo[i] < 48 || cislo[i] > 57){
cout << "Retezec neni rodnym cislem.2" << endl;
return 0; //osetreni, at jsou vstup jen cisla //konec 1. pozadavku
}
soucet += (cislo[i]-48)*pow(10, j);
++j;
}
Tušíme. Víš jaké největší číslo můžeš uložit do proměnné typu int?
A mimochodem, proč má počítadlo jako double?
Díky, už to mám, ten int prostě nestačil, překvapilo mě, že to na mě nebaflo error :D Double mám proto, že to vyžaduje pow, ten mocnitel nesmí být typu integer.
prekladac nemoze vediet ci na tvoje vypocty staci int alebo nie, tak ti nemoze ani blafnut error. Vseobecne pretecenie pri nasobeni alebo konverzii typov neni error, je to legitimna operacia vyuziva sa napr u nahodnych cisel, hashov, kryptovania, apod.