Programowania w C- sprawdzenie programu

llkk
Użytkownik
Użytkownik
Posty: 52
Rejestracja: 25 sty 2010, o 21:12
Płeć: Mężczyzna
Lokalizacja: warszawa

Programowania w C- sprawdzenie programu

Post autor: llkk »

Witam. Moglby mi ktos sprawdzic to zadanko?

Napisz program, który wyznacza BMI(Body Mass Index).Program powinien wczytac parametry:
wzrost [cm] i wage [kg] i wyswietlic komunikat zaleznie od uzyskanej wartosci.
<16,00 – wygłodzenie
16,00-18,49 - niedowaga
18,50–24,99 – wartosc prawidłowa
25,00–29,99 – nadwaga
>30,00 - otyłosc
Wskazówka: BMI = \(\displaystyle{ \frac{waga[kg]}{(wzrost[m]) ^{2} }}\)

Moje zadanko wygląda tak:

Kod: Zaznacz cały

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

float m, kg, bmi;

 int main(void)
{
    printf ("podaj wzrost w m\n");
    scanf("%f", &m);
    
    printf ("podaj wage w kg\n");
    scanf ("%f", &kg);
    
    bmi=kg/(m*m);
    
    printf("bmi=%f", bmi);
    
    if (bmi<=16)
     {printf("\nWYGLODZENIE\n");
     }

    
    
    else if (16<=bmi<18.49)
     {printf("\nNIEDOWAGA\n");
     }

    
      else if (18.5<=bmi<=24.99)
    {printf ("\nWARTOSC PRAWIDLOWA\n");
}

    
    else if (25<=bmi<=29.99)
   {printf ("\nNADWAGA\n");
}

    
     else if (bmi>=30)
    {printf ("\nOTYLOSC\n");
}
 
                  
    system ("pause");
    return 0;
}
Wszystko gra. Oblicza tak jak trzeba tylko np jak bmi wynosi 25 to i tak pokazuje "NIEDOWAGA" ..
W którym miejscu jest błąd?? wiem, że coś z instrukcjami if,else .. tylko nie wiem gdzie.. Możecie napisać jak te instrukcje mają wyglądać??
I jak je się stosuje? Kiedy jest jeden warunek to pisze się 'if' , kiedy następny warunek to 'else if' .. tak czy nie tak?? :wink:
Awatar użytkownika
kadiii
Użytkownik
Użytkownik
Posty: 642
Rejestracja: 20 gru 2005, o 21:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 130 razy

Programowania w C- sprawdzenie programu

Post autor: kadiii »

Kod: Zaznacz cały

16<=bmi<18.49
itp. - nie ma takiej składni w C. Musisz użyć operatorów logicznych

Kod: Zaznacz cały

else if((bmi>=16)&&(bmi<18.49))
Oczywiście w pozostałych tak samo.
A i uwaga estetyczna - jak masz tylko jedna instrukcję po else if to nie używaj klamer, kod jest czytelniejszy.
llkk
Użytkownik
Użytkownik
Posty: 52
Rejestracja: 25 sty 2010, o 21:12
Płeć: Mężczyzna
Lokalizacja: warszawa

Programowania w C- sprawdzenie programu

Post autor: llkk »

dzieki
Wszystko gra
ODPOWIEDZ