01/10/2018, 14:00
Sắp xếp ma trận sao cho phần tử lớn nhất của mỗi hàng nằm trên đường chéo chính
Em muốn in ma trận ra như đề nhưng khi chạy thử ma trận này thì ra như thế này:
Mong mọi người sửa code lại giúp em ạ.
#include <iostream>
#include <limits.h>
using namespace std;
void nhapDongcot(int &dong, int &cot){
do{
cout<<"Nhap so dong: ";
cin>>dong;
if(dong<0) cout<<"
So dong khong hop le";
}
while (dong<0);
do{
cout<<"Nhap so cot: ";
cin>>cot;
if(dong<0) cout<<"
So cot khong hop le";
}
while (cot<0);
}
void nhapMang(int a[][10], int dong, int cot){
for(int i=0;i<dong;i++){
for(int j=0;j<cot;j++){
cout<<"a["<<i<<"]["<<j<<"]= ";
cin>>a[i][j];
}
}
}
void xuatMang(int a[][10], int dong, int cot){
for(int i=0;i<dong;i++){
for(int j=0;j<cot;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}
void hoanVi(int &x, int &y)
{
int temp=x;
x=y;
y=temp;
}
void sapXep(int a[][10], int dong, int cot)
{
int maxd=INT_MIN;
for(int i=0;i<dong;i++){
for(int j=0;j<cot;j++){
if(a[i][j]>maxd) {
maxd=a[i][j];
hoanVi(a[i][j], a[i][i]);
}
}
maxd=INT_MIN;
}
cout<<"
Ma tran sau khi sap xep la:
";
xuatMang(a, dong, cot);
}
int main()
{
int a[10][10], dong, cot;
nhapDongcot(dong, cot);
nhapMang(a, dong, cot);
xuatMang(a, dong, cot);
sapXep(a, dong, cot);
return 0;
}
Bài liên quan
Đây là lí do chính vì sao người ta khuyên tìm max xong xuôi rồi muốn làm gì thì làm.
hàm sắp xếp bạn sửa lại 1 chút là ngon ngay
void sapXep(int a[][10], int dong, int cot)
{
int maxd=INT_MIN;
// them chi so index max
int index_max = -1;
}
em hiểu rồi, cám ơn mn