• 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
550 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 370 wizyt
pytanie zadane 17 kwietnia 2016 w C i C++ przez Rappa2 Obywatel (1,540 p.)
0 głosów
1 odpowiedź 521 wizyt

93,632 zapytań

142,556 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

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
...