mk* píše:
Jednak mi nefunguje true/false
Trocha som ti to upravil ( pod kodom vysvetlenie ):
Kód:
/*Uloha: Napisat program, ktory nacita hodnotu do znakovej premennej zn a vzpise '1' ak je to cislo '0' az '9', inak vypise 0*/
int main() // 1. chyba - main ma navratovu hodnou typu int
{
char zn, dol, hor;
dol= '0'; // druha chyba, dole vysvetlene
hor= '9';
printf("Zadaj na klavesnici lubovolny znak, ak bude z intervalu 0-9 tak program vypise 1\n");
printf("Inak vypise 0\n\n");
printf("Zadaj znak: ");
/*scanf("%c", &zn);*/
zn=getchar();
printf("\n");
printf("zadane cislo je %c\n", zn);
printf("Vysledok je: ");
printf("%d\n", (zn>=dol && zn<=hor));
getchar();
return 0;
}
True / false ti nefungovalo preto, lebo 0 a '0' nie je to iste. Kedze porovnavas znaky, tak musis pouzit '0' lebo 0 je vlastne znak s ASCII hodnotou 0, kdezto '0' ma hodnou 48.
mk* píše:
Ak zadám dvojmiestne číslo tak mi vypíše len prvú číslicu
Na nacitanie pouzivas funkciu getchar(), kde uz z nazvu vyplyva, ze sa vrati iba jeden znak. Ak chces nacitavat lubovolne dlhe cislo/retazec, tak pouzi zakomentovanu funkciu scanf.
P.S. Vsetok kod umiestnuj do znaciek [code ][/code], ktore mas hore na paneli. Je to ovela viac prehladnejsie.