Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

problem za pocetnika

[es] :: C/C++ programiranje :: C/C++ za početnike :: problem za pocetnika

[ Pregleda: 3855 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sale t.

Član broj: 30413
Poruke: 27
*.ftn.ns.ac.yu.



Profil

icon problem za pocetnika10.12.2005. u 13:52 - pre 223 meseci
Problem je sledeci:
Deo koda koji treba da prihvata vrednost sve dok ne bude unet broj izmedju 0 i 31

do{
clrscr();
printf("\nUnesite redni broj dana u mesecu:");
scanf("%d",&dan);
}while(dan<1||dan>31);

E sad sve to lepo radi ako se unesu brojevi,ali ako npr. ukucam neko slovo program vrti petlju. Stalno ispisuje "Unesite redni broj dana u mesecu" a nikako mi ne daje mogucnost da unesem broj meseca. Da li postoji nekakav drugi nacin za zastitu ako se unese slovo.


[Ovu poruku je menjao sale t. dana 10.12.2005. u 15:13 GMT+1]
 
Odgovor na temu

D3adly

Član broj: 43272
Poruke: 35
*.net.t-com.hr.

ICQ: 281458481


Profil

icon Re: problem za pocetnika10.12.2005. u 16:00 - pre 223 meseci
Učitaj dan kao znak (char) , zatim sa jednom od naredbi iz biblioteke ctype.h provjeri jeli broj ili slovo....
Malo prouči naredbe isalpha, isalnum, isdigit, i druge naredbe iz ctype.h biblioteke...
#include <D3adly.h>
 
Odgovor na temu

3MAJ86
Marko Radić
Business Development Manager, Beauty
Industry
München

Član broj: 46087
Poruke: 253
*.dialup.sezampro.yu.

Sajt: marko-radic.blogspot.com


+137 Profil

icon Re: problem za pocetnika10.12.2005. u 23:49 - pre 223 meseci
imao sam ja svoje zaglavlje u kome je (između ostalih) bila funkcija koja proverava da li je uneti broj int.

kako sam to odradio (otprilike, teorijski):
učitaš string (niz karaktera) i onda napraviš petlju koja ti proverava znak po znak da li je u pitanju slovo, broj ili neki drugi znak... naravno, poželjno je da ubaciš mogućnost da ti prvi znak bude ''-'' za negativne brojeve naravno.
ako baš želiš možeš da ubaciš i varijantu za decimalni zarez... doduše to ti za ovaj primer ne treba, ali možda ćeš u budućnosti raditi nešto gde će ti trebati i to...

prouči kako radi strlen funkcija takođe, trebaće ti...

k'o što reče čo'ek prouči ove naredbe (funkcije), najbolje je sam da odradiš... a ako baš ne uspeš, napisaću ti ovde odgovarajuću funkciju koja će rešiti tvoje muke.
when there is a why there is no how
 
Odgovor na temu

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 402



Profil

icon Re: problem za pocetnika12.12.2005. u 12:07 - pre 223 meseci
Mozda ti ovo bude dovoljno dobro resenje:
Code:

#include <stdio.h>
int main(){
    int dan;
    char *c[3];
    do{
        system("cls");
        printf("\nUnesite redni broj dana u mesecu:");
        scanf("%2s",c); // odbacuje sve preko dva znaka
                        // ispravan unos ce biti ako su:
                        // oba znaka cifre, ili je prvi cifra ostalo==0
        dan = atoi(c);
        printf("dan = %d\n",dan);
    }while(dan<1||dan>31);
    system("pause");
    return 0;
}

... verovatno ima i boljih resenja...
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: problem za pocetnika

[ Pregleda: 3855 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.