Problem z void'em

0

Witam,
Mam następujący problem. Otóż mam zrobić program obliczający m.in. procent danej liczby dodatniej dodatniej. Do tego zadnia musiałem stworzyć własną bibliotekę o nazwie 'zadanie'. Wiec utworzyłem następujące 3 pliki:
zadanie.h

#ifndef zadanie_h
#define zadanie_h
void procent();
void potegi();
void prostokat();
void rownanie();
#endif

zadanie.cpp

#include <iostream>
#include <math.h>
#include "zadanie.h"
using namespace std;
int main()
void procent(float l, float p)
{
     float l,p;
     cout<<"Podaj liczbe \n";
     cin>>l;
     cout<<"Podaj procent \n";
     cin>>p;
     while (l>0)
     {
           if(l<0)
           {
                  cout<<"Podales liczbe ujemna!\n";
                  }
           else
           if(l=0)
           {
                  cout<<"Wpisales '0' -.-\n";
                  }
           else
           if(l>0)
           {
                  cout<<"Procentem "<<l<<" jest: "<<((l*p)/100)<<endl;
                  }
                  }
                  }

main.cpp (szkielet programu)

#include <iostream>
#include <math.h>
#include "zadanie.h"

using namespace std;

int main()
{
    int wybor;
    char koniec;
    do
{
    cout<<"MENU\n";
    cout<<"1. Obliczanie procentu danej liczby dodatniej\n";
    cout<<"2. Obliczanie i wypisywanie kolejnych poteg liczby\n";
    cout<<"3. Obliczanie pola, obwodu i przekatnej prostokata\n";
    cout<<"4. Roziwazywanie rownania kwadratowego ax^2+bx=0\n";
    cin>>wybor;
    switch(wybor)
    {
                 case 1:
                      {
                            void procent();
                            break;
                            }
                 case 2:
                      {
                            cout<<"ok\n";
                            break;
                            }
                 case 3:
                      {
                            cout<<"ok\n";
                            break;
                            }
                 case 4:
                      {
                            cout<<"ok\n";
                            break;
                            }
                 default:
                         {
                             cout<<"Podales zla dana\n";
                             break;
                             }
                             }
                 cout<<"Czy zakonczyc program 'T/N'\n";
                 cin>>koniec;
                 system("cls");
                 }
    while(koniec != 't');
    return EXIT_SUCCESS;
}

Problem mam z plikiem zadanie.cpp. Otóż kompilator ukazuje mi 3 błędy które kompletnie nie wiem jak naprawić. Błędy są następującej treści:

  • 6(linia) C:\Users\Michał\Desktop\c++\wersja I\zadanie.cpp expected init-declarator before "void"
  • 6(linia) C:\Users\Michał\Desktop\c++\wersja I\zadanie.cpp expected ,' or ;' before "void"
  • C:\Users\Michał\Desktop\c++\wersja I\Makefile.win [Build Error] [zadanie.o] Error 1

POMOCY!

0

Po co w zadanie.cpp "int main()" ? Jesli deklaracja to dodaj ;.
PS. Zdonie z niezapisana zasada forum, musze powiedzieć, abyś uważniej czytal bledy.

0

czyli rozumiem ze int main() w ogóle usunąć i do void procent(float l, float p) dodać ';'?

0

Albo usunąć, albo zostawić i dać do int main() ';' :)

0

wstawiłem do int main() ';' i kolejne błędy się ukazały

  • C:\Users\Michał\Desktop\c++\wersja I\zadanie.cpp In function `void procent(float, float)':
    -8 C:\Users\Michał\Desktop\c++\wersja I\zadanie.cpp declaration of 'float l' shadows a parameter
    -8 C:\Users\Michał\Desktop\c++\wersja I\zadanie.cpp declaration of 'float p' shadows a parameter
  • C:\Users\Michał\Desktop\c++\wersja I\Makefile.win [Build Error] [zadanie.o] Error 1

z tego co rozumiem to czepia się moich zmiennych 'l' i 'p' i ma problem z tym void'em, niestety nie mam zielonego pojęcia jak to naprawić

0
  1. Usun w parametrach zmienne w funkcji procent. One powodują ten błąd. Daj zamiast (....,....) ()
  2. W funkcji main() zamiast void procent(); daj procent(); bo wyjdzie kolejny błąd.
0

usunąłem tylko te float'y i skompilowało bez problemów, niestety kolejny błąd się znalazł w programie głównym, po skompilowaniu i uruchomieniu wpisuje w menu 1 i powinien sie program wyswietlic, lecz wyświetla mi sie tylko linia 'Czy zakonczyc program 'T/N'.

0

Usunąłeś te void z case'a w mainie? I jeszcze coś - W funkcji procent masz w drugim if'ie "l=0"! = to operator przypisania! Żeby porównać należy użyć ==.

0

w main nic nie usuwałem... a co do tego if'a to juz poprawiam

0

Tak powwinno być

#include <iostream>
#include <math.h>
#include "zadanie.h"

using namespace std;

int main()
{
    int wybor;
    char koniec;
    do
    {
        cout<<"MENU\n";
        cout<<"1. Obliczanie procentu danej liczby dodatniej\n";
        cout<<"2. Obliczanie i wypisywanie kolejnych poteg liczby\n";
        cout<<"3. Obliczanie pola, obwodu i przekatnej prostokata\n";
        cout<<"4. Roziwazywanie rownania kwadratowego ax^2+bx=0\n";
        cin>>wybor;
        switch(wybor)
        {
        case 1:
        {
            procent(); //<<----  Było void procent();
            break;
        }
        case 2:
        {
            cout<<"ok\n";
            break;
        }
        case 3:
        {
            cout<<"ok\n";
            break;
        }
        case 4:
        {
            cout<<"ok\n";
            break;
        }
        default:
        {
            cout<<"Podales zla dana\n";
            break;
        }
        }
        cout<<"Czy zakonczyc program 'T/N'\n";
        cin>>koniec;
        system("cls");
    }
    while(koniec != 't');
    return EXIT_SUCCESS;
}
0

działa, dzięki!

0

Ok. Nie ma za co!

1 użytkowników online, w tym zalogowanych: 0, gości: 1