Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 4.629 pregleda

Najnovija ↓

problem za pocetnika 10.12.2005. u 14:52 · pre 254 meseca
izmenjeno 1 put, poslednji put sale t. 10.12.2005. u 15:13
  1. sale t.10.12.2005. u 15:13zapis iz teksta poruke
#1
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.
Re: problem za pocetnika 10.12.2005. u 17:00 · pre 254 meseca #2
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...
Potpis
#include <D3adly.h>
Re: problem za pocetnika 11.12.2005. u 00:49 · pre 254 meseca #3
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.
Potpis
when there is a why there is no how
Re: problem za pocetnika 12.12.2005. u 13:07 · pre 254 meseca #4
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...
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme