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

Błąd w programie ?

0 głosów
533 wizyt
pytanie zadane 16 kwietnia 2016 w C i C++ przez Rappa2 Obywatel (1,540 p.)

Gdzie popełniłem błąd ?

#include <iostream>
double temp();

using namespace std;

int c;

int main()
{
    cout << "Podaj temperature w stopniach Celsjusza: " << endl;
    cin>>c;
    cout<<c<<"stopnie Celsjusza to "<<temp();<<" stopnie Fahrenheita"<<endl;
    return 0;
}

double temp(int c)
{
   return c*3,2;
}

 

4 odpowiedzi

+1 głos
odpowiedź 16 kwietnia 2016 przez draghan VIP (106,230 p.)
wybrane 16 kwietnia 2016 przez Rappa2
 
Najlepsza
Podpowiem hasło: argument funkcji. ;)
komentarz 16 kwietnia 2016 przez Rappa2 Obywatel (1,540 p.)
dodałem argument funkcji w 12 i w 2 lini ale nadal coś nie działa ;/
komentarz 16 kwietnia 2016 przez draghan VIP (106,230 p.)
Takie są skutki używania zmiennych globalnych - tak krótki program, a już uwidacznia pewne problemy.

Zmień zasięg zmiennej c na lokalny (wrzuć ją do funkcji main()) i zobacz, co dzieje się dalej. ;)
komentarz 16 kwietnia 2016 przez Rappa2 Obywatel (1,540 p.)
edycja 16 kwietnia 2016 przez Rappa2
Ok po prostu był problem z  ; po wywołaniu funkcji
komentarz 16 kwietnia 2016 przez draghan VIP (106,230 p.)

Ano coś zepsułeś. Kompilator mówi Ci wyraźnie, co i gdzie jest nie tak.

main.cpp|12|error: expected primary-expression before '<<' token

Kompilator oczekiwał czegoś przed operatorem << w linii 12... Zakończyłeś wypisywanie średnikiem, musisz więc albo usunąć ten średnik, albo po średniku dać znów cout, żeby kompilator wiedział, do czego odnosi się operator <<.

mian.cpp|18|warning: left operand of comma operator has no effect [-Wunused-value]|

Przecinek jest również operatorem, oddzielającym wyrażenia - jeśli chcesz zapisać liczbę z przecinkiem, użyj w tym celu kropki.

komentarz 16 kwietnia 2016 przez Rappa2 Obywatel (1,540 p.)
Wielkie thx za pomoc
komentarz 16 kwietnia 2016 przez draghan VIP (106,230 p.)
Na zdrowie. :) Powodzenia w dalszej nauce.
0 głosów
odpowiedź 16 kwietnia 2016 przez Perfidious Nowicjusz (140 p.)
Linia 12, przekaż argument.
0 głosów
odpowiedź 16 kwietnia 2016 przez C☺ndzi Stary wyjadacz (12,100 p.)
No to tak: zmienna globalna nazywa się tak samo jak zmienna wewnątrz funkcji, zło (zmień nazwę jednej z nich); w drugiej linii masz funkcję temp(), a w 16 temp(int c) - to dwie różne funkcje; w 12 linii brak argumentu i ';' po temp() jest niepotrzebny - nie robi się ich w środku cout'a; linia 18 - dlaczego przecinek w return? Kropka jak już. I żeby nie było że brak puenty czy coś: sprawdzaj jakie błędy wyrzuca kompilator i próbuj sam je naprawiać :)
0 głosów
odpowiedź 16 kwietnia 2016 przez Marcin Soczówka Użytkownik (590 p.)

Jeżeli 

double temp(int c)
{
   return c*3,2;
}

chcesz dać pod funkcją main to musisz wcześniej dać znać kompilatorowi, że ona tam jest:].

Podobne pytania

0 głosów
2 odpowiedzi 360 wizyt
pytanie zadane 17 kwietnia 2016 w C i C++ przez Rappa2 Obywatel (1,540 p.)
0 głosów
1 odpowiedź 505 wizyt

93,604 zapytań

142,529 odpowiedzi

322,997 komentarzy

63,092 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

Kursy INF.02 i INF.03
...