Witam!
Czy ktos mily, mógłby przerobic mi mój programik tak, aby parametry do funkcji "srednie" byly przekazywane:
a) jeden przez referencje
b) jeden przez wskaznik
a jeden z intow niech zostanie jak jest przez wartosc.
Chcialbym zobaczyc jak to dziala w praktyce na stworzonym przez siebie programie.
Pozdrawiam! :)
#include <iostream>
using namespace std;
const int mmax = 100;
const int nmax = 100;
void wczytaj_macierz(int wiersze, int kolumny, float 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;
cin >> macierz[i][j];
}
}
void wypisz_macierz (int wiersze, int kolumny, float macierz[][nmax])
{
int i,j;
for(i=0;i<wiersze;i++)
{for(j=0;j<kolumny;j++)
cout << macierz[i][j] << " ";
cout << endl;
}
}
void suma_wektorow(int rozmiar, float wektor1[], float wektor2[], float wektor3[])
{
int i;
for(i=0;i<rozmiar;i++)
wektor3[i] = wektor2[i] + wektor1[i];
}
void srednie (int rozmiar, float wektor[], int numer)
{
int i, iloscd, iloscu;
float sredniad,sredniau;
sredniad = 0; sredniau = 0; iloscd = 0; iloscu = 0;
for(i=0;i<rozmiar;i++)
{
if(wektor[i] >=0)
{
sredniad = sredniad + wektor[i];
iloscd ++;
}
if(wektor[i] < 0)
{ sredniau = sredniau + wektor[i];
iloscu ++;
}
}
if(iloscd > 0)
{
cout << "Srednia liczb dodatnich w kolumnie " << numer << ":" << endl;
cout << sredniad/iloscd;
}
else
cout << "Brak liczb dodatnich w kolumnie " << numer << endl << endl;
if(iloscu > 0)
{
cout << "Srednia liczb ujemnych w kolumnie " << numer << ":" << endl;
cout << sredniau/iloscu;
}
else
cout << "Brak liczb ujemnych w kolumnie " << numer << endl << endl;
}
float minimum (int rozmiar, float wektor[])
{
int i;
float min;
min = wektor[0];
for(i=1;i<rozmiar;i++)
{
if(wektor[i] < min)
min = wektor[i];
}
return min;
}
int main()
{
int m,n,i;
float A[mmax][nmax]; float B[mmax]; float C[mmax];
cout << "Witaj w programie!" << endl;
cout << "Podaj ilosc wierszy macierzy A (<= " << mmax << "):" << endl;
cin >> m;
cout << "Podaj ilosc kolumn macierzy A (<=" << nmax << "):" << endl;
cin >> n;
if(m>0 && n>0 && m<=mmax && n<=nmax)
{
wczytaj_macierz(m,n,A);
cout << "Macierz, ktora podales ma postac:" << endl;
wypisz_macierz(m,n,A);
suma_wektorow(n,A[0],A[m-1],C);
cout << "Suma ostatniego i pierwszego wiersza macierzy wynosi:" << endl;
for(i=0;i<n;i++)
cout << C[i] << " ";
for(i=0;i<m;i++)
C[i] = A[i][1];
srednie (m,C,2);
for(i=0;i<m;i++)
B[i] = minimum(n,A[i]);
cout << "Wektor utworzony z wartosci minimalnych w wierszach macierzy to:" << endl;
for(i=0;i<m;i++)
cout << B[i] << " ";
}
else
cout << "Podano zly rozmiar macierzy!" << endl;
return 0;
}