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,], 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:
#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!!!!