• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

BMI - SPOJ - Błędna Odpowiedź

Object Storage Arubacloud
0 głosów
1,004 wizyt
pytanie zadane 18 lipca 2017 w C i C++ przez Kamil Paradowski Użytkownik (620 p.)

Witam, czy ktoś mógłby przejrzeć świeżym okiem na ten kod i powiedzieć gdzie popełniłem tutaj błąd? 

Zadanie: http://pl.spoj.com/problems/FR_02_06/

Kod: 

#include <iostream>

int main()
{
    short t;
    float masa;
    float wzrost;
    std::cin>>t;
    char imie[t][20];
    float BMI[t];
    for(int i=0;i<t;i++)
    {
        std::cin>>imie[i]>>masa>>wzrost;
        BMI[i]=(masa/(wzrost*wzrost)*10000);
    }
        std::cout<<"niedowaga"<<std::endl;
        for(int i=0;i<t;i++)
        {
            if (BMI[i]<18.5)
                std::cout<<imie[i]<<std::endl;
        }
        std::cout<<"\nwartosc prawidlowa"<<std::endl;
        for(int i=0;i<t;i++)
        {
            if (BMI[i]>18.5 && BMI[i]<25)
                std::cout<<imie[i]<<std::endl;
        }
        std::cout<<"\nnadwaga"<<std::endl;
        for(int i=0;i<t;i++)
        {
            if (BMI[i]>=25)
                std::cout<<imie[i]<<std::endl;
        }
    return 0;
}

 

komentarz 19 lipca 2017 przez Aisekai Nałogowiec (42,190 p.)
Co jeśli BMI będzie równe 18.5?
komentarz 19 lipca 2017 przez Kamil Paradowski Użytkownik (620 p.)
hahah, niemożliwe! We wcześniejszej wersji normalnie to opisałem, tutaj musiałem na szybko pominąć ten znak. Niestety pomimo tej poprawki dalej jest błędna odpowiedź.

1 odpowiedź

0 głosów
odpowiedź 18 lipca 2017 przez Evelek Nałogowiec (28,960 p.)

Tu:

std::cin>>t;
char imie[t][20];
float BMI[t];

Jeśli nie znasz rozmiaru tablicy w trakcie kompilacji, to jej wielkość musisz zaalokować dynamicznie, a nie w ten sposób jak to tutaj zrobiłeś. Ewentualnie ratuj się jakimś kontenerem z STL, np. std::vector<>.

komentarz 18 lipca 2017 przez Kamil Paradowski Użytkownik (620 p.)
A mogę po prostu jakoś inaczej to napisać, nie używając tutaj dynamicznych alokacji?
komentarz 19 lipca 2017 przez Jedras Maniak (54,860 p.)
za pomocą chociażby vectora
komentarz 19 lipca 2017 przez Kamil Paradowski Użytkownik (620 p.)

Zastosowałem się do rady użytkownika  Aisekai oraz większyłem zawartość tablicy char z 20 do 21. SPOJ wtedy przyjął mi rozwiązanie, nie zmieniłem jednak tego o czym wspomniałeś.

Podobne pytania

0 głosów
2 odpowiedzi 408 wizyt
pytanie zadane 29 października 2018 w C i C++ przez Shimeo7 Obywatel (1,910 p.)
0 głosów
1 odpowiedź 155 wizyt
pytanie zadane 7 maja 2023 w C i C++ przez alfutek Początkujący (360 p.)
0 głosów
1 odpowiedź 668 wizyt
pytanie zadane 26 sierpnia 2018 w SPOJ przez koziolek8820 Nowicjusz (120 p.)

92,684 zapytań

141,590 odpowiedzi

320,076 komentarzy

62,044 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...