Să se scrie o funcție C++ care are ca parametri două numere naturale n și m și o matrice A(n , m) avȃnd elemente numere întregi și returnează numărul de elemente „șa” din matrice. Un element A(i,j) din matrice se numește element „șa” dacă este maximul de pe coloana j si minimul de pe linia i sau invers.
Subprogramul se va numi nr_sa va avea trei parametri: a, un tablou bidimensional cu elemente întregi, n, m, reprezentând numărul de linii, respectiv de coloane ale tabloului a.
Restricţii şi precizări
0 < n,m ≤ 100
numele subprogramului cerut este nr_sa
parametrii sunt, în această ordine: a, n, m
indicii de linie și de coloana ai tabloului a încep de la 0 și sunt de tip int;
matricea folosită în apelul din funcția main va fi declarată int a[100][100]; și are elementele indexate de la 0.
Exemplu
Pentru n=2, m=6 și A=(572186439835)A=(528493716385) funcția va returna valoarea 2 (elementele șa sunt A0,1A0,1 și A1,4A1,4 – elementele sunt indexate de la 0).
Răspunsuri la întrebare
Răspuns de
27
int nr_sa(int a[100][100], int n, int m)
{
int i, j, c, nr = 0, maxx, minn, k, p, min1, max1;
for(i = 0; i < n; i ++)
{
for(j = 0; j < m; j ++)
{
minn = 2147148001;
maxx = - minn;
min1 = minn;
max1 = maxx;
for(k = 0; k < m; k ++)
{
if(a[i][k] > maxx) maxx = a[i][k];
if(a[i][k] < minn) minn = a[i][k];
}
for(k = 0; k < n; k ++)
{
if(a[k][j] > max1) max1 = a[k][j];
if(a[k][j] < min1) min1 = a[k][j];
}
if(a[i][j] == maxx && a[i][j] == min1) nr ++;
else
if(a[i][j] == max1 && a[i][j] == minn) nr ++;
}
}
return nr;
}
{
int i, j, c, nr = 0, maxx, minn, k, p, min1, max1;
for(i = 0; i < n; i ++)
{
for(j = 0; j < m; j ++)
{
minn = 2147148001;
maxx = - minn;
min1 = minn;
max1 = maxx;
for(k = 0; k < m; k ++)
{
if(a[i][k] > maxx) maxx = a[i][k];
if(a[i][k] < minn) minn = a[i][k];
}
for(k = 0; k < n; k ++)
{
if(a[k][j] > max1) max1 = a[k][j];
if(a[k][j] < min1) min1 = a[k][j];
}
if(a[i][j] == maxx && a[i][j] == min1) nr ++;
else
if(a[i][j] == max1 && a[i][j] == minn) nr ++;
}
}
return nr;
}
Alte întrebări interesante
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă