• 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
971 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 389 wizyt
pytanie zadane 29 października 2018 w C i C++ przez Shimeo7 Obywatel (1,910 p.)
0 głosów
1 odpowiedź 137 wizyt
pytanie zadane 7 maja 2023 w C i C++ przez alfutek Początkujący (360 p.)
0 głosów
1 odpowiedź 633 wizyt
pytanie zadane 26 sierpnia 2018 w SPOJ przez koziolek8820 Nowicjusz (120 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...