Zadanie: Python na C

Zadanie: Python na C
S2
  • Rejestracja:ponad 3 lata
  • Ostatnio:około rok
  • Postów:20
0

Zrobiliśmy na zajęciach program liczący BMI w Pythonie i mamy taki sam napisać w C.

Python (jupyter notebook):

Kopiuj
W = float(input("Waga: "))
W2 = float(input("Wzrost: "))

BMI = W/(W2**2)

print(f"Twoje BMI to: {BMI}")
      
if BMI<16.0:
    print(f"wygłodzenie")
if BMI>=16.0 and BMI<=16.99:
    print(f"wychudzenie")
if BMI>=17.0 and BMI<=18.49:
    print(f"niedowaga")
if BMI>=18.5 and BMI<=24.99:
    print(f"pożądana masa ciała")
if BMI>=25.0 and BMI<=29.99:
    print(f"nadwaga")
if BMI>=30.0 and BMI<=34.99:
    print(f"otyłość 1 stopnia")
if BMI>=35.0 and BMI<=39.99:
    print(f"otyłość 2 stopnia")
if BMI>=40.0:
    print(f"otyłość 3 stopnia")

To co spróbowałam napisać w C, ale nwm czemu nie działa. (mamy użyć #include "stdio.h")

Kopiuj
#include "stdio.h"

int main()
{
    float waga, wzrost, BMI;
    printf("Wprowadź swoją wagę: \n");
    scanf("%f", &waga);
    printf("Wprowadź swój wzrost: \n");
    scanf("%f", &wzrost);

    BMI = waga / (wzrost * wzrost);
    printf("Twoje BMI to: {BMI}");

 if (BMI < 16.0);
    printf("wygłodzenie");
 if (BMI >= 16.0 && BMI < 17.0);
    printf("wychudzenie");
 if (BMI >= 17.0 && BMI < 18.5);
    printf("niedowaga");
 if (BMI >= 18.5 && BMI < 25.0);
    printf("pożądana masa ciała");
 if (BMI >= 25.0 && BMI < 30.0);
    printf("nadwaga");
 if (BMI >= 30.0 && BMI < 35.0);
    printf("otyłość 1 stopnia");
 if (BMI >= 35.0 && BMI < 40.0);
    printf("otyłość 2 stopnia");
 if (BMI > 40.0);
    printf("otyłość 3 stopnia");
}
edytowany 3x, ostatnio: kq
AL
to ma być C czy C++? I co dokładnie nie działa? No i proszę, sformatuj kod jak należy.
S2
C. Właśnie nie wiem za bardzo co nie działa. (Build started... 1>------ Build started: Project: BMI, Configuration: Debug Any CPU ------ 1>C:\Users\kasia\source\repos\BMI\BMI\Program.cs(2,2,2,9): error CS1024: Preprocessor directive expected 1>Done building project "BMI.csproj" -- FAILED. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========) Jestem bardzo nowa w kodowaniu czegokolwiek więc niezbyt wiem jak należy sformatować xD
AL
cs to jest rozszerzenie odpowiednie dla C#, zmień je na C na początek ;P
Tasmanian Devil
"Twój post prawdopodobnie zawiera niesformatowany kod - nie wklejaj bezpośrednio kodu, ale obejmuj go w odpowiednie znaczniki! (jestem botem, ten komentarz został dodany automatycznie)"
kq
Jak C to czemu tagujesz i opisujesz C++?
W2
  • Rejestracja:ponad 3 lata
  • Ostatnio:około 3 lata
  • Postów:47
0
Kopiuj
BMI =  waga / ( (wzrost * wzrost)  / 10000.0);
printf("Twoje BMI to: %.2f", BMI) ;

do poprawki te if'y
if (BMI < 16.0); nie może być średnika, uzywaj składni if (...) else if(...), używaj klamer { }

//edit
na zamieszczonym poniżej screen'ie widzę że podajesz wzrost 1.75
jeżeli tak

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

int main()
{
    float waga, wzrost, BMI;
    printf("Wprowadź swoją wagę: \n") ;
    scanf("%f", &waga) ;
    printf("Wprowadź swój wzrost: \n") ;
    scanf("%f", &wzrost) ;

    BMI =  waga / ( wzrost * wzrost) ;
    printf("Twoje BMI to: %.2f", BMI) ;

    printf("\n");
    if (BMI < 16.0)
    {
        printf("wygłodzenie");
    }
    else if (BMI >= 16.0 && BMI < 17.0)
    {
        printf("wychudzenie");
    }
    else if (BMI >= 17.0 && BMI < 18.5)
    {
        printf("niedowaga");
    }
    else if (BMI >= 18.5 && BMI < 25.0)
    {
        printf("pożądana masa ciała");
    }
    else if (BMI >= 25.0 && BMI < 30.0)
    {
        printf("nadwaga");
    }
    else if (BMI >= 30.0 && BMI < 35.0)
    {
        printf("otyłość 1 stopnia");
    }
    else if (BMI >= 35.0 && BMI < 40.0)
    {
        printf("otyłość 2 stopnia");
    }
    else if (BMI > 40.0)
    {
        printf("otyłość 3 stopnia");
    }

    return 0;
}


edytowany 3x, ostatnio: WWA2025
S2
  • Rejestracja:ponad 3 lata
  • Ostatnio:około rok
  • Postów:20
0

bmi - python.pngbmi - C.png

tu jest jak to wygląda

vpiotr
Formatowanie na screenshocie nie pomaga tylko przeszkadza. Jak mamy to testowac?
AL
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 3 lata
  • Postów:1493
1

Napisałem Ci w komentarzu: .cs to nie jest rozszerzenie dla kodu C, tylko C#. Jeśli zmiana nazwy nie pomoże, to stwórz nowy projekt i odpowiednio to poustawiaj, bo obecnie nie walczysz z kodem tylko złą konfiguracją budowania.

kq
Wątek i tag był o C++, plik C#, a autor chce C. Zaraz jeszcze znajdzie jakieś Clojure 🙃
JM
Amerykańscy survivalowcy mówią o 10 C
Eldorad O.
  • Rejestracja:około 6 lat
  • Ostatnio:około 9 godzin
  • Postów:517
0

@Sway22: Kolego piękny, już 3 raz masz chyba mówione o tym, żebyś zmienił rozszerzenie pliku.
Wystosować oficjalne pismo?

edytowany 1x, ostatnio: Eldorad O.
BG
  • Rejestracja:prawie 6 lat
  • Ostatnio:około 20 godzin
  • Postów:289
0

Hmm, albo ktoś zadał studentom dokładnie to samo zadanie co ja, albo student(ka) pisze tutaj zamiast przyjść po prostu na konsultacje... Tylko dlaczego w C chce pisać skoro wszystkie grupy mają C++ ;)

_13th_Dragon
Wymagasz od nich kaskady ifów?
BG
To zadanie z trzecich albo czwartych zajęć z podstaw programowania - inaczej jeszcze nie potrafią (nie potrafili). Oczywiście nie wszyscy zrobili to kaskadą if-ów ;)
_13th_Dragon
Dawaj tematy we właściwej kolejności, to nie będzie takich dziwolągów: zmienne, instrukcje sterujące, tablicy oraz struktury, funkcje.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.