Program nie działa zgodnie z oczekiwaniami - proszę o pomoc w znalezieniu błędów

0
#include<stdio.h>
#include <conio.h>

int main()
{
	float wzrost;

	printf("Witaj ! \n\n");

	printf("Podaj swoj wzrost : ");
	scanf_s(" %e ", &wzrost);

	if (wzrost <= 150)
	{
		printf("\nJestes niski/a; )");
	}
	if ((wzrost > 150) && (180 >= wzrost))
	{
		printf("\nJestes sredni/a ; ) ");
	}
	else
	{
		printf("\nJestes wysoki/a ;) ");
	}


	fflush(stdin);
	_getch();

	return 0;
};

Czesc mam probblem z tym kodem poniewaz prosze uzytkownika o wpisanie swojego wzrostu a on nie chce wczytac mi tej liczby wpisuje odpowiedz czyli wzrost wciskam enter przeskakuje mi do nowej lini i tam moge dowali pisac i dopiero przypadkowo i program nie sprawdza warunkow co jest nie tak ? Bardzo prosze o pomoc .

0

on nie chce wczytac mi tej liczby wpisuje odpowiedz czyli wzrost wciskam enter przeskakuje mi do nowej lini i tam moge dowali pisac i dopiero przypadkowo i program nie sprawdza warunkow co jest nie tak
a po polsku?

0

Gdy program pyta o wzrost uzytkownik wpisuje liczbe np 150 wciska enter przechodzi dalej ze znow mozna cos napisac i po jakims czasie wyrzuca przypadkowy warunek spelniony

0
Krwawy Pomidor napisał(a):
#include<stdio.h>

	float wzrost;
	scanf_s(" %e ", &wzrost);

Spróbuj scanf_s("%f",&wzrost);

http://www.cplusplus.com/reference/cstdio/scanf/

2

Przy okazji wydaje mi się, że warunki są źle sformułowane.

    if (wzrost <= 150)
    {
        printf("\nJestes niski/a; )");
    }
    if ((wzrost > 150) && (180 >= wzrost))
    {
        printf("\nJestes sredni/a ; ) ");
    }
    else
    {
        printf("\nJestes wysoki/a ;) ");
    } 

Jeżeli wpiszesz wzrost=140 to pojawi się komunikat, że jesteś niski i wysoki, ponieważ else odnosi się do drugiego ifa. Aby to działało poprawnie dodaj else if w drugim warunku.

 
#include<stdio.h>
 
int main()
{
    float wzrost;
 
    printf("Witaj!\n");
 
    printf("Podaj swoj wzrost : ");
    scanf("%f", &wzrost);
 
    if (wzrost <= 150)
    {
        printf("\nJestes niski");
    }
    else if((wzrost > 150) && (wzrost <= 180))
    {
        printf("\nJestes sredni");
    }
    else
    {
        printf("\nJestes wysoki");
    }
 
    return 0;
}

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