Diskuze: ciferný součet
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Proč tam máš ten podivný do .. while ?
Pokud chceš, aby se program vykonal pouze jednou, tak ho úplně odstraň. Pokud chceš, aby po svém vykonání čekal na stisknutí klávesy (což většinou chceš na Windows), tak můžeš myslím použít system("pause");
Jo a k čemu je float soucet(float);
??
Pro vytvoření proměnné použij (stejně jako to děláš u těch intů)
jen float soucet;
Přičemž nechápu, k čemu ji tam máš, když ji nikde nepoužíváš - asi
nějaký pozůstatek?
Jinak pokud chceš řešení čekání na stisk enteru řešit nezávisle na platformě, tak se typicky používá jednoduchý getchar. Při tvém použití scanf ovšem musíš vyprázdnit vstupní buffer.
Uživatel typicky zadá: 12345 (nějaké číslo) a pak zmáčkne Enter.
scanf("%d");
přečte číslice a v bufferu zůstane Enter, který
si aplikace ještě nepřevzala. To se řeší třeba takto:
int main()
{
int c,cislo,vysledek,cis;
printf("Ciferny soucet cisla");
printf("Zadejte cislo: ");
scanf("%d",&cislo);
while (getchar() != EOF) // vyprazdni buffer (precte vsechny znaky a zahodi je)
;
cis=cislo; vysledek=0;
while(cislo)
{
c=cislo%10;
vysledek+=c;
cislo/=10;
}
printf("\Ciferny soucet cisla %d je %d\n",cis,vysledek);
getchar(); // ceka se na stisk Enteru
return 0;
}
Zobrazeno 3 zpráv z 3.