[C++] Problem z kompilacją

rafal9541
Użytkownik
Użytkownik
Posty: 63
Rejestracja: 31 sty 2012, o 20:38
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 11 razy
Pomógł: 1 raz

[C++] Problem z kompilacją

Post autor: rafal9541 »

Mam problem z kompilacją zadania, chodzi mi jedynie o poprawienie błędu przez który program nie działa poprawnie. Błąd znajduje się w linijce, w której jest komentarz -"Tu jest BŁĄD". Lista błędów wyświetla:"expected constant expression" odnośnie tej linijki

Kod: Zaznacz cały

#include <iostream>;
using namespace std;

void pot(double[4],int,int);
int main()
{
	int k;
	double tab[4]={2,3.0,4.0,5.0};
	pot(tab,4,3);
	cout<<"Potegi trzecie"<<endl;
	for(k=0;k<4;k++)
	   cout<<tab[k]<<endl;
	system("pause");
	pot(tab,4,2);
	cout<<"Potegi szoste"<<endl;
	for(k=0;k<4;k++)
	    cout<<tab[k]<<endl;
	system("pause");
	return 0;





    void pot(double *t, int n,int wyk)             //def funkcji
	
	{                                              //t u t a j   j e s  t   B Ł  Ą D
		double t[n],iloczyn;
		for(int i=0;i<n;i++)           
			{
		    iloczyn=1;
			for(int j=1; j<=wyk;j++)
			   iloczyn*=t[i];
			t[i]=iloczyn;
		    }
	}
}
abc666

[C++] Problem z kompilacją

Post autor: abc666 »

Masz parametr o nazwie t a potem próbujesz zadeklarować tablicę o tej samej nazwie. Musisz zmienić któreś t na coś innego.
rafal9541
Użytkownik
Użytkownik
Posty: 63
Rejestracja: 31 sty 2012, o 20:38
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 11 razy
Pomógł: 1 raz

[C++] Problem z kompilacją

Post autor: rafal9541 »

Trochę uprościłem program, ale nadal jest błąd, tym razem kod wygląda tak:

Kod: Zaznacz cały

#include <iostream>;
using namespace std;

void potega(double[],int);
int main()
{
	int k;
	double tab[4]={2,3.0,4.0,5.0};
	potega(tab,4);
	cout<<"Potegi trzecie"<<endl;
	for(k=0;k<4;k++)
	   cout<<tab[k]<<endl;
	system("pause");
	potega(tab,4);
	cout<<"Potegi szoste"<<endl;
	for(k=0;k<4;k++)
	    cout<<tab[k]<<endl;
	system("pause");
	return 0;





    void potega(double t[], int n)             //def funkcji
	
	{                      //tutaj jest BŁĄD
		int wyk=3;
		double iloczyn;     
		for(int i=0;i<n;i++)           
			{
		    iloczyn=1;
			for(int j=1; j<=wyk;j++)
			   iloczyn*=t[i];
			t[i]=iloczyn;
		    }
	}
}
Program wyświetla taki błąd w tej samej linii:"local function definitions are illegal".
abc666

[C++] Problem z kompilacją

Post autor: abc666 »

Ach, bo masz definicję funkcji w funkcji. W c++ tak nie można. Przenieś linijki 25-37 na sam koniec za ostatnią klamerkę.
ODPOWIEDZ