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

Digitron ne radi bas kako treba

[es] :: C/C++ programiranje :: Digitron ne radi bas kako treba

[ Pregleda: 1853 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Z0l_4
Blitzkrieg | [Z]ola
Podgorica

Član broj: 212647
Poruke: 3
*.crnagora.net.



+1 Profil

icon Digitron ne radi bas kako treba19.09.2010. u 21:55 - pre 150 meseci
Napravio sam digitron, ali postoji jedna greska, koja u opste ne smeta da se kod kompajlira i da kod izvrsava operacije

Code:

#include <stdio.h> 
#include <stdlib.h> 

int main() 

    
    float displayedVal; 
    float newEntry; 
    char sym; 
    
    displayedVal = 0.0; 
    
    printf("   Upisi znak/operator: "); 
    scanf("%c", &sym); 
    while (sym != 'Q' && sym != 'q')
   { 
    switch(sym) 
    { 
               case 'c': 
               case 'C': 
                        displayedVal = 0.0; 
                        break;
               case '+': 
                        printf("   Upisi broj: "); 
                        scanf("%f", &newEntry); 
                        
                        displayedVal +=newEntry; 
                        break; 
               case '-': 
                        printf("   Upisi broj: "); 
                        scanf("%f", &newEntry); 
                        
                        displayedVal -= newEntry; 
                        break; 
               case '*': 
                        printf("   Upisi broj: "); 
                        scanf("%f", &newEntry); 
                        
                        displayedVal *= newEntry; 
                        break; 
               case '/': 
                        printf("   Upisi broj: "); 
                        scanf("%f", &newEntry); 
                        if (newEntry == 0) 
                        { 
                                     printf("\n > Ne mozete dijeliti sa nulom. < "); 
                                     newEntry = 1; 
                        } 
                        
                        displayedVal /= newEntry; 
                        break; 
               default: 
                       printf("\n   Upisali ste pogresan znak"); 
                       break; 
    } 
    printf("\n                                Rezultat = %f\n", displayedVal); 
    printf("   Upisi znak/operator: "); 
    scanf("%c", &sym); 






program prolazi dva puta kroz petlju i dodeljuje neku nepoznatu vrijednost sto uzrokuje da se ispise poruka "Upisali ste pogresan znak"
ako na kraju stavim jos jednom scanf("%c", &sym); radi normalno. :/

Evo slika kako to izgleda...
http://www.mycity.rs/slika.php?slika=145463_91771718_digitron.JPG]

 
Odgovor na temu

GORSHTAK
Ivan Matić

Član broj: 136182
Poruke: 285
*.adsl.verat.net.



+5 Profil

icon Re: Digitron ne radi bas kako treba28.09.2010. u 21:12 - pre 150 meseci
Malo je nezgodno koristiti scanf i getchar kada radiš sa karakterima, jer zaostaje \r iz predhodnog unosa.
Tj. kada ukucaš "+" pa zvizneš enter, dobiješ ovo: "+\r".

Ja sam to rešavao tako što sam kad god završim sa unosom karaktera, iza toga sam pozvao samo getchar() da pokupi smeće iz bafera. Možda glupo rešenje ali radilo je posao.

 
Odgovor na temu

[es] :: C/C++ programiranje :: Digitron ne radi bas kako treba

[ Pregleda: 1853 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

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