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

Funkcja wewnątrz innej funkcji

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
128 wizyt
pytanie zadane 20 stycznia 2020 w C i C++ przez amtrax Dyskutant (9,630 p.)

Witam, 

Gdzie leży błąd, że program nie chce się uruchomić? 
 

#include <iostream>

using namespace std;

void petla();
float harmonia( const int[]);

int main()
{


    petla();


    return 0;
}
void petla()
{
    int tab[2]{0,0};


        for( int i=0; i<2; i++)
        {
            cout<<"Podaj "<< i+1<<" liczbe"<<endl;
            cin>>tab[i];
            if( tab[i]== 0)
                break;
            else
                continue;

        }

        float a;
        a = harmonia(tab[]);
        cout<<a;


}
float harmonia( const int tab[])
{

    float srednia=0;
        srednia = tab[0] * tab[1] / (tab[0]+tab[1]);
    return srednia;

}

 

komentarz 20 stycznia 2020 przez tkz Nałogowiec (42,060 p.)
Przeczytaj błąd jaki zwraca kompilator...

2 odpowiedzi

0 głosów
odpowiedź 20 stycznia 2020 przez Mya Bywalec (2,790 p.)
wybrane 20 stycznia 2020 przez amtrax
 
Najlepsza

Dokładnie tam gdzie wskazuje kompilator, czyli w linii 34. Powinno być:

a = harmonia(tab);

Dodatkowo zwróć uwagę, że wynik podawany będzie zawsze jako liczba całkowita (z uciętymi miejscami po przecinku). Dzieje się tak, że dzielenie liczby całkowitej przez inną całkowitą, zawsze zwraca wynik w postaci liczby całkowitej (tak masz w linii 43.).

Żeby tego uniknąć musisz zastosować rzutowanie na liczbę zmiennoprzecinkową:

srednia = tab[0] * tab[1]  / (float)(tab[0] + tab[1]);

 

+1 głos
odpowiedź 20 stycznia 2020 przez tangarr Mędrzec (155,180 p.)

Linia 34

a = harmonia(tab);

Ponadto funkcja harmonia zawsze zwróci wynik całkowitoliczbowy. Rzutuj na float przynajmniej jedną zmienną użytą w wyrażeniu liczącym średnią.

Podobne pytania

+1 głos
0 odpowiedzi 666 wizyt
pytanie zadane 2 czerwca 2021 w C i C++ przez Mavimix Dyskutant (8,420 p.)
0 głosów
2 odpowiedzi 1,509 wizyt
pytanie zadane 12 grudnia 2018 w C i C++ przez sebastian970 Użytkownik (710 p.)
0 głosów
2 odpowiedzi 185 wizyt

93,439 zapytań

142,431 odpowiedzi

322,677 komentarzy

62,802 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

...