macierz wczytywanie i wypisywanie za pomoca podfunkcji

0

Witam!

Mam stworzyc program ktory za pomoca podfunkcji wczytuje i wypisuje macierz (tablice dwuwymiarowa).

Nie chce mi sie niestety to co tworze skompilowac.

Robilem tak mniej wiecej z wektorami (tablice jednowymiarowe) i nie bylo zadnych problemow. Z macierzami nie chce sie skompilowac.

tu moj kodzik:


#include <iostream>
using namespace std;

void wczytaj_macierz (int m, int n, float macierz[][], char nazwa)
{
	cout << "Macierz " << nazwa << endl;
	int i,j;
	for(i=0;i<m;i++)
	for(j=0;j<n;j++)
	{
		cout << "Podaj element [" <<i+1 <<"]["<<j+1<<"]:" << endl;
		cin >> macierz[i][j];
	}
	
}

void wypisz_macierz (int m,int n, float macierz[][],char nazwa)
{
	int i,j;
	cout << "Macierz " <<nazwa << "ma postac:" << endl;
	for(i=0;i<m;i++)
	{for(j=0;j<n;j++)
		cout << macierz[i][j] << "   ";
		cout << endl;
	}
	
	cout << endl << endl;
}

int main()
{
	int m,n;
	const int mmax = 100; const int nmax = 100;
	float A[mmax][nmax]; float B[mmax][nmax];
	
	cout << "Witaj w programie!" << endl << endl;
	
	cout << "Podaj ilosc wierszy macierzy A oraz macierzy B (m<="<<mmax<<"):"<<endl;
	cin >> m;
	
	cout << "Podaj ilosc kolumn macierzy A oraz macierzy B (n<="<<nmax<<"):"<<endl;
	cin >> n;
	
	if(m>0 && n>0 && m<=mmax && n<=nmax)
	{
		
		wczytaj_macierz (m,n,A,'A');
		wczytaj_macierz (m,n,B,'B');
		wypisz_macierz (m,n,A,'A');
		wypisz_macierz (m,n,B,'B');
	}
	
	else
	cout << "Podano zly rozmiar macierzy" << endl;
	
	return 0;
}

Dziekuje z gory i pozdrawiam! :)

0
#include <iostream>
using namespace std;

void wczytaj_macierz (int m, int n, float (*macierz)[mmax], char nazwa)
{
	cout << "Macierz " << nazwa << endl;
	int i,j;
	for(i=0;i<m;i++)
	for(j=0;j<n;j++)
	{
		cout << "Podaj element [" <<i+1 <<"]["<<j+1<<"]:" << endl;
		cin >> macierz[i][j];
	}
	
}

void wypisz_macierz (int m,int n, float (*macierz)[mmax], char nazwa)
{
	int i,j;
	cout << "Macierz " <<nazwa << "ma postac:" << endl;
	for(i=0;i<m;i++)
	{for(j=0;j<n;j++)
		cout << macierz[i][j] << "   ";
		cout << endl;
	}
	
	cout << endl << endl;
}

int main()
{
	int m,n;
	const int mmax = 100; const int nmax = 100;
	float A[mmax][nmax]; float B[mmax][nmax];
	
	cout << "Witaj w programie!" << endl << endl;
	
	cout << "Podaj ilosc wierszy macierzy A oraz macierzy B (m<="<<mmax<<"):"<<endl;
	cin >> m;
	
	cout << "Podaj ilosc kolumn macierzy A oraz macierzy B (n<="<<nmax<<"):"<<endl;
	cin >> n;
	
	if(m>0 && n>0 && m<=mmax && n<=nmax)
	{
		
		wczytaj_macierz (m,n,A,'A');
		wczytaj_macierz (m,n,B,'B');
		wypisz_macierz (m,n,A,'A');
		wypisz_macierz (m,n,B,'B');
	}
	
	else
	cout << "Podano zly rozmiar macierzy" << endl;
	
	return 0;
}

niestety, dalej nie dziala.

0

teraz zauwazylem, ze dam jest define mmax jeszcze po includzie. ale to jest chyba zabawa ze zmiennymi globalnymi a nam ten sposob zakazano :)

0

a czy moge zrobic tak?

Doszedlem do tego czytajac jakies poboczne wątki. Kompilowac sie kompiluje wiec chyba ok. Pytanie, czy to co zrobilem nie ma nic wspolnego z tablicami dynamicznymi? Gdyz nie mozemy ich uzywac.

#include <iostream>
using namespace std;
 
void wczytaj_macierz (int m, int n, float macierz[][100], char nazwa)
{
        cout << "Macierz " << nazwa << endl;
        int i,j;
        for(i=0;i<m;i++)
        for(j=0;j<n;j++)
        {
                cout << "Podaj element [" <<i+1 <<"]["<<j+1<<"]:" << endl;
                cin >> macierz[i][j];
        }
 		cout << endl << endl;
}
 
void wypisz_macierz (int m,int n, float macierz[][100],char nazwa)
{
        int i,j;
        cout << "Macierz " << nazwa << " ma postac:" << endl;
        for(i=0;i<m;i++)
        {for(j=0;j<n;j++)
                cout << macierz[i][j] << "   ";
                cout << endl;
        }
 
        cout << endl << endl;
}
 
int main()
{
        int m,n;
        const int mmax = 100; const int nmax = 100;
        float A[mmax][nmax]; float B[mmax][nmax];
 
        cout << "Witaj w programie!" << endl << endl;
 
        cout << "Podaj ilosc wierszy macierzy A oraz macierzy B (m<="<<mmax<<"):"<<endl;
        cin >> m;
 
        cout << "Podaj ilosc kolumn macierzy A oraz macierzy B (n<="<<nmax<<"):"<<endl;
        cin >> n;
 
        if(m>0 && n>0 && m<=mmax && n<=nmax)
        {
 
                wczytaj_macierz (m,n,A,'A');
                wczytaj_macierz (m,n,B,'B');
                wypisz_macierz (m,n,A,'A');
                wypisz_macierz (m,n,B,'B');
        }
 
        else
        cout << "Podano zly rozmiar macierzy" << endl;
 
        return 0;
}
 
0

Czyli tak moze byc :)

Dziekuje :)

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