Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Pomoc w programie obliczającym silnie.

gumis_42 07 Maj 2010 12:21 690 4
  • #1 07 Maj 2010 12:21
    gumis_42
    Poziom 10  

    Proszę o pomoc w odnalezieniu błędu, i jeżeli to możliwe poprawienie go.
    "-declaration syntax error in function main()
    -declaration missing ; in function main()
    -Unexpected}"

    Code:
        
    
    #include<stdio.h>
    #include<iostream.h>
    #include<math.h>


    int silnia (int n)
    {
     if (n<0)
            return 0;
        if (n==0||n==1)
            return 1;
        return silnia(n-1)*n;
    }
    void Obliczenia()
    {
     int wej;
        cout << "Silnie jakiej liczby chcesz obliczyc: ";
        cin >> wej;
        cout << wej << "! = " << silnia(wej);
        cin.get();
        cin.get();
    }

    void Winieta()
    {
    cout<<"Obliczam silnie"<<endl;
    }
    void MojProgram()
    {
    Winieta();
    Obliczenia();
    }
    void main()
    {
    void MojProgram()
     
    }

    0 4
  • #2 07 Maj 2010 13:20
    Terminator
    Poziom 23  

    na szybko

    Code:
    void Winieta()
    
    {
    cout<<"Obliczam silnie"<<endl;
    }
    void MojProgram() ; // !! brak średnika
    {
    Winieta();
    Obliczenia();
    }
    void main()
    {
    void MojProgram();  // !! brak średnika
     
    }


    Nie sprawdzałem ale zobacz jeszcze if ( (n==0) || (n==1) )
    Dodatkowo stosujemy #include <iostream> a przed każdym cout i cin : std::

    0
  • Pomocny post
    #3 07 Maj 2010 13:24
    wrych
    Poziom 20  

    Drobne poprawki w Twoim kodzie - zmiany zaznaczyłem w komentarzach

    Code:
    // #include<stdio.h> // zbędne w tym programie
    
    #include<iostream>  // zamiast iostream.h ...
    // #include<math.h> // zbędne w tym programie
    using namespace std; // dodane

    int silnia (int n)
    {
     if (n<0)
            return 0;
        if (n==0||n==1)
            return 1;
        return silnia(n-1)*n;
    }
    void Obliczenia()
    {
     int wej;
        cout << "Silnie jakiej liczby chcesz obliczyc: ";
        cin >> wej;
        cout << wej << "! = " << silnia(wej);
        cin.get();
        cin.get();
    }

    void Winieta()
    {
    cout<<"Obliczam silnie"<<endl;
    }
    void MojProgram()
    {
    Winieta();
    Obliczenia();
    }
    int main() //int zamiast void
    {
    MojProgram(); //zbędne void
    }

    Kompilowałem i uruchamiałem w Dev-C++. Zrezygnowałbym też z funkcji MojProgram umieszczając wywołanie funkcji Winieta i Obliczenia w ciele funkcji main.

    0
  • #4 07 Maj 2010 13:31
    gumis_42
    Poziom 10  

    wrych bardzo Ci dziękuję wszystko działa jak należy. Zamykam temat.

    0
  • #5 07 Maj 2010 13:32
    Terminator
    Poziom 23  

    Jeśli już stosujesz

    Code:
    int main()
    to przydałoby się return na końcu

    0