Witam!
Chcialbym sie dowiedziec, czemu wyswietla mi macierz 0 + 0 a nie o normalnych elementach. gdzies zrobilem glupi blad a niewiem gdzie
#include <iostream>
#include <math.h>
using namespace std;
const int mmax = 100;
const int nmax = 100;
struct zespolona
{
float re,im;
};
void wczytaj_macierz (int wiersze, int kolumny, zespolona macierz[][nmax])
{
int i,j;
for(i=0;i<wiersze;i++)
for(j=0;j<kolumny; j++)
{
cout << "Podaj element ["<< i+1 << "][" << j+1 << "]:" << endl;
cout << "Podaj Re:" << endl;
cin >> macierz[i][j].re;
cout << "Podaj Im:" << endl;
cin >> macierz[i][j].im;
}
}
void wypisz_macierz (int wiersze, int kolumny, zespolona macierz[][nmax])
{
int i,j;
for(i=0;i<wiersze;i++)
{for(j=0;j<kolumny;j++);
cout << macierz[i][j].re << " + " << macierz[i][j].im << " ";
cout << endl;
}
}
float modul_wiersza (int rozmiar, zespolona wektor[])
{
float suma;
suma = 0;
int i;
for(i=0;i<rozmiar;i++)
{
suma = suma + sqrt(wektor[i].re * wektor[i].re + wektor[i].im * wektor[i].im);
}
return suma;
}
void srednie (int rozmiar, float *rzeczywiste, float & urojone, zespolona wektor[])
{
int i;
int ilosc = 0;
for(i=0;i<rozmiar;i++)
{
*rzeczywiste = *rzeczywiste + wektor[i].re;
urojone = urojone + wektor[i].im;
}
*rzeczywiste = *rzeczywiste/ilosc;
urojone = urojone/ilosc;
}
int main()
{
zespolona A[mmax][nmax];
int m,n;
cout<<"podaj wiersze"<<endl;
cin>>m;
cout<<"podaj kolumny"<<endl;
cin>>n;
if(m<=mmax&&n<=nmax&&m>0&&n>0)
{
cout<<"macierzA"<<endl<<endl;
wczytaj_macierz(m,n,A);
cout<<"twoja macierz ma postac"<<endl;
wypisz_macierz(m,n,A);
zespolona B[nmax];
int i;
for(i=0;i<m;i++)
{B[i]=A[i][n-2];}
float suma2=0;
suma2=modul_wiersza(m,B);
cout<<"Suma modulu przedostatniej kolumny macierzy A ="<<endl;
cout<<suma2;
float sumare = 0;
float sumaim = 0;
srednie(n,&sumare,sumaim,A[1]);
cout<<"srednia liczb rzeczywistych 2 wiersza macierzy"<<endl;
cout<<sumare;
cout<<"srednia liczb urojonych 2 wiersza macierzy"<<endl;
cout<<sumaim;
}
else
cout<<"podano zly rozmiar macierzy"<<endl;
return 0;
}