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

Błąd w programie - funkcje

VPS Starter Arubacloud
0 głosów
146 wizyt
pytanie zadane 17 kwietnia 2016 w C i C++ przez Rappa2 Obywatel (1,540 p.)

Jaki popełniłem błąd ?

#include <iostream>

using namespace std;

void godzina(int);

int main()
{
    int godz,minuta;
    cout << "Podaj liczbe godzin: ";
    cin>>godz;
    cout<<"Podaj liczbe minut: ";
    cin>>minuta;
    cout << "Czas: "<<godzina();
    return 0;
}

void godzina(int godz,int minuta)
{
    cout<<godz<<":"<<minuta;
}

 

2 odpowiedzi

0 głosów
odpowiedź 17 kwietnia 2016 przez Bondrusiek Maniak (61,370 p.)
wybrane 17 kwietnia 2016 przez Rappa2
 
Najlepsza

Witam serdecznie,

zauważ, że stworzona przez Ciebie funkcja zwraca typ pusty 'void' a strumień wyjściowy cout operuje na klasie ostream. Wniosek taki że należy rozdzielić cout i funkcje. Jeszcze w prototypie funkcji zapomniałeś o drugim argumencie ale to szczegół.

#include <iostream>


using namespace std;

void godzina(int godz,/*tu brakło argumentu */ int minuta);

int main()
{
    int godz,minuta;
    cout << "Podaj liczbe godzin: ";
    cin>>godz;
    cout<<"Podaj liczbe minut: ";
    cin>>minuta;
    cout << "Czas: "; //zauważ że w funkcji nie przesyłasz nic strumieniowi 'cout' tylko jest void
    godzina(godz,minuta);
    cout << endl ;
    return 0;
}

void godzina(int godz,int minuta)
{
    cout << godz <<":"<< minuta;
}

Oraz druga wersja. Działa w 80% tzn. wywołuj się funkcje ale wywołuje coś jeszcze sam nie wiem i będę musiał się nad tym zastanowić. Dodatkowo pokazuję adres funkcji, strumienia etc. To już poziom very high i normalniejszy jest 1.

#include <iostream>


using namespace std;

ostream& godzina(int godz, int minuta);

int main()
{
    int godz,minuta;
    cout << "Podaj liczbe godzin: ";
    cin>>godz;
    cout<<"Podaj liczbe minut: ";
    cin>>minuta;
    cout << "Czas: " <<     godzina(godz,minuta);
    cout << endl ;
    return 0;
}

ostream& godzina(int godz,int minuta)
{
    cout << godz <<":"<< minuta;
}

 

+1 głos
odpowiedź 17 kwietnia 2016 przez Dorion300 Szeryf (90,250 p.)
void godzina(int x ,int y);

Pierwotnie twoja "godzina" przyjmuje 2 parametry.

A twoja "godzina(int);" przyjmuje tylko jeden parametr.

komentarz 17 kwietnia 2016 przez Rappa2 Obywatel (1,540 p.)
ok, dodałem w definicji funkcji 1 inta, ale nadal wyskakuje błąd

|14|error: too few arguments to function 'void godzina(int, int)'|
|5|note: declared here|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
komentarz 17 kwietnia 2016 przez Dorion300 Szeryf (90,250 p.)
Podczas gdy wywołujesz funkcję, to ta funkcja nie przyjmuje żadnych parametrów.

"godzina();"

Dodaj parametry w linii 14

Podobne pytania

0 głosów
4 odpowiedzi 235 wizyt
pytanie zadane 16 kwietnia 2016 w C i C++ przez Rappa2 Obywatel (1,540 p.)
0 głosów
1 odpowiedź 326 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...