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

Dlaczego funkcja nie działa? Gdzie jest błąd?

+1 głos
338 wizyt
pytanie zadane 6 stycznia 2016 w C i C++ przez Maiyo Nowicjusz (180 p.)

Dobry wieczór.

A więc.. zacznę od tego, że na zajęciach z programowania co lekcję jest nowy "wykład", a na końcu każdego są ćwiczenia kontrolne. Teraz staram się zrobić jedno, ale mam problem. W tym ćwiczeniu chodzi o to, że jest gracz i smok i oni się tam tłuką. Napisałam sobie już funkcje ataków i w ogóle, ale.. problem jest przy samym pokazaniu stanu zdrowia. Po uruchomieniu otwiera się pusta konsola (nie licząc napisu "Process returned 0...."), a chciałabym jak na razie, aby pokazało owy stan zdrowia. Pomógłby mi ktoś znaleźć co jest nie tak? (Mam nadzieję, że kod ładnie się pokaże...)

 

#include <iostream>
#include <conio.h>

using namespace std;

int a=1000; //hp smoka
int b=100; //hp gracza
int c=4; //liczba potionow

int main()
{
    void stan();

    return 0;
}

void fireball()
{
    a=a-400;
    b=b-40;
    cout << endl << "Uzyles ataku Fireball! Zadales smokowi 400 pkt obrazen!" << endl;
}

void stan()
{
    std::cout << endl<< "Twoje hp wynosi: "<<b<<" pkt." << endl << "HP smoka wnosi: "<<a<<" pkt."<<endl;
}

void topor()
{
    a=a-150;
    b=b-15;
    cout << endl << "Uzyles ataku toporem! Zadales smokowi 150 pkt obrazen!"<< endl;
}

void luk()
{
    a=a-50;
    cout<<endl<<"Uzyles ataku lukiem! Zadales smokowi 50 pkt obrazen"<<endl;
}

void lekarstwo()
{
    if(c > 0)
    {
        c=c-1;
        b=b+40;
        cout << endl<< "Uzyles potiona! Odzyskales 40pkt zdrowia! "<<endl<<"Liczba pozostalych potionow: " << c << " ." << endl;
    }
    else
        cout << endl << "Nie posiadasz juz potionow!" << endl;
}

void atak_smoka(int x)
{
    x=a*0.05;
    b=b-x;
    cout << endl << "Smok Cie zaatakowal! Zadal Ci " << x << " pkt obrazen!" <<endl;
}

 

2 odpowiedzi

+3 głosów
odpowiedź 6 stycznia 2016 przez Mariusz O Mądrala (5,290 p.)
wybrane 7 marca 2016 przez Maiyo
 
Najlepsza

Spróbuj na początek bez "std::", skoro masz using namespace std;

A w main wystarczy stan();, bez void.

komentarz 6 stycznia 2016 przez Maiyo Nowicjusz (180 p.)
Bardzo, bardzo ładnie dziękuję!
+1 głos
odpowiedź 6 stycznia 2016 przez niezalogowany

Źle wywołujesz funkcję stan, powinno być tak:

int main()
{
 stan();
}

Pewnie miałaś błędy o nieistniejącej funkcji stan() dlatego pojawił się u ciebie ten void na początku.

Otóż: jeżeli chcesz posiadać ciało funkcji po main(), to przez mainem musisz dodać deklarację tej funkcji, tzn:

void stan(); // <- dajesz znać kompilatorowi że taka funkcja istnieje i musi poszukac sobie jej ciala

int main()
{
  stan();

}


void stan()
{
 // kod

}

 

Podobne pytania

0 głosów
1 odpowiedź 462 wizyt
–1 głos
0 odpowiedzi 192 wizyt
pytanie zadane 14 czerwca 2020 w PHP przez x_000 Obywatel (1,460 p.)
0 głosów
2 odpowiedzi 1,370 wizyt

93,631 zapytań

142,554 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
...