Prosty program - niepotrzebny enter w buforze

0

Witam, mam tu taki prosty program: wszystko działa ok oprócz jednej rzeczy - po wykonaniu funkcji trójkąt, w buforze jest nadal [enter], więc cokolwiekby po jej wykonaniu nie wpisać to wyskoczy błąd. Pytanie - w jaki sposób pozbyć się tego entera po wpisaniu wartości dla boku c (dla liter robi to funkcja wpiszlitere(), ale ona po wpisaniu 1 znaku przestaje czytać resztę - w przypadku liczb tak być nie może)

 static zmienna=0;
// Nalicza wywolania programu

void trojkat()
{
    float a, b, c;
    printf("Podaj dlugosci wszystkich bokow:\n");
    scanf("%f %f %f", &a, &b, &c);
    if(a+b<c || a+c<b || b+c<a)
        printf("To nie jest trojkat!\n");
    else{
        if(a*a+b*b==c*c ||a*a+c*c==b*b || b*b+c*c==a*a)
            printf("To jest trojkat prostokatny!\n");
        else
            printf("To nie jest trojkat prostokatny!\n");
    }
}

int wpiszlitere()
{
    char ch;
    ch=getchar();
    while(getchar()!='\n')
        continue;
    return ch;
}

void funkcja()
{
    printf("a. Porada\t\t\tc.Liczba wywolan\nb. Trojkat prostokatny\t\tq. Koniec\nWpisz litere:\n");
        switch(wpiszlitere()){
        case 'a' : printf("\nPorada: Kuj zelazo poki gorace\n\n");
            ++zmienna;
            funkcja();
            break;
        case 'b' : ++zmienna;
            trojkat();
            funkcja();
            break;
        case 'c' : ++zmienna;
            printf("\nWybrales juz %d opcji\n\n", zmienna);
            funkcja();
        case 'q' : break;
        default : printf("Blad! Podaj poprawna litere!\n\n");
            funkcja();
            break;

    }
}

int main()
{
    funkcja();
    return 0;
}
0

Dokladnie tak samo albo dodac spacje po %f.

0

Może lepiej zapoznaj się z pętlami zamiast zapełniać bezsensu stos.

0

_13th_Dragon, mógłbyś powiedzieć co tu jest nie tak z pętlami?
a co do spacji po %f, to już nie ma problemu co pisałem, ale teraz trzeba jeszcze coś dopisać, tj. trzeba wpisać 4 wartości żeby funkcja się wykonała (wynik da dobry, 4 wpis zignoruje)

0

sorry ale ja jeszcze nie wiem co to jest stos, możesz powiedzieć w którym miejscu stosuje "nieskończone zapełnienie stosu"

1 użytkowników online, w tym zalogowanych: 0, gości: 1