[ Príspevkov: 3 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 08.09.11
Prihlásený: 17.09.11
Príspevky: 11
Témy: 4 | 4
NapísalOffline : 12.09.2011 19:04 | malý program v c

Chcel by som sa naučiť aspoň trochu c, urobil som si malý program (zadanie bolo na webe, a tento funguje):

#include <stdio.h>
/*Uloha: Napisat program, ktory nacita hodnotu do znakovej premennej zn a vzpise '1' ak je to cislo '0' az '9', inak vypise 0*/
main()
{
char zn, dol, hor;
zn= 10;
dol= 0;
hor= 9;
printf("%d\n", (zn>=dol && zn<=hor));
getchar();
}
Tento programík som si chcel vylepšiť aby načítal znak z klávesnice, pridal som tam aj riadok aby mi ukázal aký znak bol zadaný.
Už som presurfoval spústu času, premŕvam sa v knihe Programovací jazyk C a stále to neviem rozlúsknuť. Jednak mi nefunguje true/false, okrem toho ak zadám dvojmiestne číslo tak mi vypíše len prvú číslicu:

#include <stdio.h>
/*Uloha: Napisat program, ktory nacita hodnotu do znakovej premennej zn a vzpise '1' ak je to cislo '0' az '9', inak vypise 0*/

main()
{
char zn, dol, hor;
dol= 0;
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();
}
Vie mi niekto vysvetliť v čom je problém?


Offline

Skúsený užívateľ
Skúsený užívateľ
malý program v c

Registrovaný: 11.01.09
Prihlásený: 09.11.26
Príspevky: 1402
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 12.09.2011 19:28 | malý program v c

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 08.09.11
Prihlásený: 17.09.11
Príspevky: 11
Témy: 4 | 4
Napísal autor témyOffline : 12.09.2011 19:39 | malý program v c

Dík


 [ Príspevkov: 3 ] 


malý program v c



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Potrebujem spravit maly program v cecku/delphi/jave - odmena

v Ponuka a dopyt práce

0

1311

16.09.2007 13:36

Vriasdjorl

V tomto fóre nie sú ďalšie neprečítané témy.

Maly notebook

v Notebooky a netbooky

0

510

27.08.2008 17:39

Iqwak

V tomto fóre nie sú ďalšie neprečítané témy.

maly RS

v CMS

2

973

26.07.2009 13:56

mokus

V tomto fóre nie sú ďalšie neprečítané témy.

Maly notebook

v Notebooky a netbooky

27

1367

19.05.2008 20:18

Kamahl

V tomto fóre nie sú ďalšie neprečítané témy.

malý help!

v AMD

9

1039

10.07.2007 23:58

Jaro

V tomto fóre nie sú ďalšie neprečítané témy.

maly Upgrade

[ Choď na stránku:Choď na stránku: 1, 2, 3 ]

v PC zostavy

78

2188

12.08.2013 9:40

scubi7

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.

maly kompik

v PC zostavy

8

662

19.09.2011 22:09

ac.milan

V tomto fóre nie sú ďalšie neprečítané témy.

Maly notebook.

v Notebooky a netbooky

2

364

19.11.2014 15:48

nescafe

V tomto fóre nie sú ďalšie neprečítané témy.

Maly Notebook

v Notebooky a netbooky

11

1282

05.12.2009 20:16

fuzac89

V tomto fóre nie sú ďalšie neprečítané témy.

Maly tichy PC

v PC zostavy

1

498

14.08.2010 18:46

Cirky

V tomto fóre nie sú ďalšie neprečítané témy.

Maly pracovny notebook

v Notebooky a netbooky

6

790

01.05.2009 15:14

Jaro

V tomto fóre nie sú ďalšie neprečítané témy.

Maly LCD monitor

v Monitory, televízory a projektory

3

1283

18.01.2009 21:25

f4r0

V tomto fóre nie sú ďalšie neprečítané témy.

maly vykon 6800GS

v nVidia grafické karty

6

816

09.12.2006 16:47

eXistenZ

V tomto fóre nie sú ďalšie neprečítané témy.

Malý Herný Notebook

v Notebooky a netbooky

13

674

25.03.2014 9:54

nescafe

V tomto fóre nie sú ďalšie neprečítané témy.

Jeden maly problem

v Sieťové programy

5

739

06.10.2006 14:33

peters

V tomto fóre nie sú ďalšie neprečítané témy.

malý veľký bug

v Unix-like systémy

8

732

08.05.2009 15:28

yaJohny



© 2005 - 2026 PCforum, edited by JanoF