Novo

Forum kao aplikacija na telefonu

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

  • 1 odgovor
  • 3.148 pregleda

Najnovija ↓

Digitron ne radi bas kako treba 19.09.2010. u 22:55 · pre 196 meseci #1
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]

Re: Digitron ne radi bas kako treba 28.09.2010. u 22:12 · pre 196 meseci #2
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.

Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme