Witam wszystkich ponownie dziękuje za porady bardzo pomocne mam ostatnią jeszcze prośbę ponieważ mam taki program operujący na tablicy dwuwymiarowej nie wiem co robi funkcja counter próbowałem ją analizować jest to nawiązanie do początku postu Tablica tablic po skompilowaniu wychodzą jedynki i zera czy ktoś by mógł mi wyjaśnić co robi po kolei ta funkcja
#include<cstdlib>
#include<iostream>
#include <iomanip>
using namespace std;
#define nmax 50
typedef int t[nmax];
typedef int t2[nmax][nmax];
void zerujT2(int n, t2 a);
/* zaimplementuj funkcje dla tablic dwuwymiarowych (tresc zadan analogiczna jak w zadaniu 1): */
void drukujT2(int n, t2 a);
void losujT2(int n, t2 a, int z);
int sumaT2(int n, t2 a);
int minT2(int n, t2 a);
int maxT2(int n, t2 a);
int minmaxT2(int n, t2 a);
void countT2(int n, t2 a, int z, t b);
void drukujT(int n, t2 a, t b);
void addT2(int n, t2 a, int value);
void mulT2(int n, t2 a, int value);
void sumujT2(int n, t2 a, t2 d, t2 c);
void mnozT2(int n, t2 a, t2 d, t2 c);
void transponujT2(int n, t2 a); /* zamien w tablicy elementy a[i][j] z a[j][i] */
int main(void)
{
int n, z;
t2 a, c, d;
t b;
n = 2;
z = 10;
zerujT2 (n,a);
losujT2(n,a,z);
drukujT2(n,a);
cout<<"suma "<<sumaT2(n,a)<<"\n";
cout<<"min "<<minT2(n,a)<<"\n";
cout<<"max "<<maxT2(n,a)<<"\n";
cout<<"max-min "<<minmaxT2(n,a)<<"\n";
cout<<"counter\n";
countT2(n,a,z,b);
drukujT(n,a,b);
addT2(n, a, 4);
cout<<"tablica a \n";
drukujT2(n,a);
mulT2(n, a, 2);
cout<<"tablica a \n";
drukujT2(n,a);
losujT2(n,d,z);
cout<<"tablica d \n";
drukujT2(n,d);
sumujT2(n,a,d,c);
cout<<"tablica a+d \n";
drukujT2(n,c);
mnozT2(n,a,d,c);
cout<<"tablica a*d \n";
drukujT2(n,c);
cout<<"transponuj a \n";
transponujT2(n,a);
drukujT2(n,a);
system("pause");
return 0;
}
/** */
void zerujT2(int n, t2 a)
{
int i,j;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++) { a[i][j] = 0; }
}
/** */
void drukujT2(int n, t2 a)
{
int i,j;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
cout<<a[i][j]<<setw(3)<<" \t ";
}
cout<<endl;
}}
void losujT2(int n, t2 a, int z)
{
int i,j;
for ( i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
a[i][j]=rand () % z;
}
}
int sumaT2(int n, t2 a)
{
int i,j, x=0;
for ( i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
x+= a[i][j];
}
return x;
}
int minT2(int n, t2 a)
{int i,j,x=a[0][0];
for (i = 0; i < n; i++)
for (j = 0; j < n; j++){
if(x>a[i][j])
x=a[i][j];
}
return x;
}
int maxT2(int n, t2 a)
{int i,j,x=a[0][0];
for (i = 0; i < n; i++)
for (j = 0; j < n; j++){
if(x<a[i][j])
x=a[i][j];
}
return x;
}
int minmaxT2(int n, t2 a)
{
int x=0;
x=maxT2(n,a)-minT2(n,a);
return x;
}
void countT2(int n, t2 a, int z, t b)
{
int i,j;
for ( i = 0; i < z; i++) {b[i]=0;}
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
b[a[i][j]]=b[a[i][j]]+1;}
}
void drukujT(int n, t2 a, t b)
{
int i,j;
j=maxT2(n,a);
for ( i = 0; i <= j; i++) printf("%d ",b[i]);
cout<<"\n";
}
void addT2(int n, t2 a, int value)
{
int i,j;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
a[i][j]=a[i][j]+value;
}
void mulT2(int n, t2 a, int value)
{
int i,j;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
a[i][j]=a[i][j]*value;
}
void sumujT2(int n, t2 a, t2 d, t2 c)
{
int i,j;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
c[i][j]=a[i][j]+d[i][j];
}
void mnozT2(int n, t2 a, t2 d, t2 c)
{
int i,j;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
c[i][j]=a[i][j]*d[i][j];
}
void transponujT2(int n, t2 a)
{
int i,j,x,y;
for (i = 0; i < n/2; i++)
for (j = 0; j < n/2; j++)
{
x=a[i][j];
y=a[j][i];
a[i][j]=y;
}
}