👤
AAAsayds
a fost răspuns

sa se alcatuiasca o functie care schimba locurile a doua linii a unei matrici patrate.
Folosind aceasta functie,sa se ordoneze liniile matriciei date cu un numar impar de coloane ,astfel incit elemntele coloanei din mijloc sa fie in ordine cresctoare.


Răspuns :

#include <iostream>
using namespace std;

/*Argumente: dimensiune matrice si liniile care sunt schimbate
  Schimba cele doua linii*/
int a[100][100];  
void schimba_linii(int n,int linia1,int linia2){
int j,temp;
for(j=0;j<n;j++){
temp=a[linia1][j];
a[linia1][j]=a[linia2][j];
a[linia2][j]=temp;
}

}
int main(){
int n,i,j,m,mijloc;
cout<<"Introduceti dimensiunea matricei";
cin>>n;
if(n%2==0){
cout<<"Nr de coloane trebuie sa fie impar pentru ordonarea ceruta\n";
cout<<"In cazul acesta cand nr de coloane e par, o alegem pe cea fix de la juma\n";

}
cout<<"Introduceti matricea: ";
for(i=0;i<n;i++){
for(j=0;j<n;j++){
cin>>a[i][j];
}
}
if(n%2==0){
mijloc=n/2;
}
else{
mijloc=(n+1)/2;
}

for(i=0;i<n;i++){
m=i;
for(j=i;j<n;j++){
if(a[j][mijloc-1]<a[m][mijloc-1]){
m=j;
}

}

schimba_linii(n,i,m);
}
cout<<"Matricea cu coloana din mijloc sortata este: \n";
for(i=0;i<n;i++){
for(j=0;j<n;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}