Informatică, întrebare adresată de borobon, 8 ani în urmă

Fișierul matrice.in conține pe prima linie un număr natural par n (2≤n≤100), iar pe următoarele n linii câte n numere naturale din intervalul [0,10^{3}], separate prin câte un spațiu.
Cerințe:
- Să afișeze pe ecran valorile impare situate pe cele două diagonale ale tabloului. Dacă nu există nicio valoare impară pe diagonale atunci pe ecran se afișează mesajul "nu exista".
- Pentru orice valoare citită la tastatură să se afișeze un mesaj corespunzător dacă aceasta se află printre elementele matricii.
- Să se ordoneze crescător elementele de pe coloana a 2-a
- Să se interschimbe elementele liniilor 1 și 3.

Răspunsuri la întrebare

Răspuns de StefanGroparu21
1

Răspuns:

#include<bits/stdc++.h>

using namespace std;

bool k[1000];

int main()

{

ifstream f("matrice.in");

int n,a[101][101],nr=0,v[101];

f>>n;

cout<<"Numerele impare de pe diagonale:"<<endl;

for(int i=1;i<=n;i++)

{

   for(int j=1;j<=n;j++)

{

   f>>a[i][j];

   k[a[i][j]]=1;

   if(j==2)

       v[i]=a[i][j];

   if(i==j || (j==n+1-i))

   if(a[i][j]%2==1)

   {

       nr++;

       cout<<a[i][j]<<" ";

   }

}

}

if(nr==0)

   cout<<"Nu exista";

   cout<<endl;

   cout<<"Matricea dupa ordonarea coloanei 2:"<<endl;

   sort(v+1,v+n+1);

   for(int i=1;i<=n;i++)

       a[i][2]=v[i];

   for(int i=1;i<=n;i++)

   {

       if(i>1 and i<=n)

           cout<<endl;

       for(int j=1;j<=n;j++)

           cout<<a[i][j]<<" ";

   }

   cout<<endl<<"Matricea dupa interschimbarea coloanei 1 cu 3:"<<endl;

   for(int i=1;i<=n;i++)

   swap(a[i][1],a[i][3]);

      for(int i=1;i<=n;i++)

   {

       if(i>1 and i<=n)

           cout<<endl;

       for(int j=1;j<=n;j++)

           cout<<a[i][j]<<" ";

   }

cout<<endl;

int j,o;

cout<<"Numarul de numere pe care doriti sa le cautati in matrice:";

cin>>j;

cout<<endl;

while(j)

{

   cin>>o;

   if(k[o]==0)

       cout<<o<<" nu se afla in matrice"<<endl;

   else if(k[o]==1)

       cout<<o<<" se afla in matrice"<<endl;

   j--;

}

return 0;

}

Explicație:

A daua cerinta nu e formulata clar, sper ca am interpretat-o corect.

Sper ca te-am ajutat!!!!


borobon: Multumesc mult!
Alte întrebări interesante