Răspuns :
#include <iostream>
#include <fstream>
using namespace std;
// a
int nrpare_p(int n, int v[103][103])
{
int numere_pare = 0;
for (int i = 0; i < n; i++)
{
if (v[i][i] % 2 == 0)
numere_pare++;
}
if (numere_pare == 0)
return -1;
return numere_pare;
}
// b
int nrpare_s(int n, int v[103][103])
{
int numere_pare = 0;
for (int i = 0; i < n; i++)
{
if (v[i][n - 1 - i] % 2 == 0)
numere_pare++;
}
if (numere_pare == 0)
return -1;
return numere_pare;
}
int main()
{
int v[103][103];
int val, n;
int i = 0;
int j = 0;
ifstream fisier;
fisier.open("matrice.int");
fisier >> n;
while (fisier >> val)
{
v[i][j] = val;
j++;
if (j == n)
{
i++;
j = 0;
}
}
int numere_impare_p = n - nrpare_p(n, v);
int numere_impare_s = n - nrpare_s(n, v);
int nr_impare;
if (nrpare_p(n, v) == -1 && nrpare_s(n, v) == -1)
{
nr_impare = n + n; // avem numai numere impare pe ambele diagonale
}
else if (nrpare_p(n, v) == -1)
{
// avem numai numere impare pe diagonala principala
nr_impare = n + numere_impare_s;
}
else if (nrpare_s(n, v) == -1)
{
// avem numai numere impare pe diagonala secundara
nr_impare = n + numere_impare_p;
}
else
{
nr_impare = numere_impare_s + numere_impare_p;
}
if (nr_impare == 0)
cout << "Nu exista";
else
cout << nr_impare;
fisier.close();
return 0;
}
Vă mulțumim pentru vizita pe platforma noastră dedicată Informatică. Sperăm că informațiile oferite v-au fost utile. Dacă aveți întrebări sau aveți nevoie de sprijin suplimentar, vă încurajăm să ne contactați. Revenirea dumneavoastră ne bucură, iar dacă v-a plăcut, nu uitați să adăugați site-ul nostru la favorite!