Ma trận sắp xếp tăng theo cột trên xuống dưới

mọi người giúp em, nó chỉ tăng cột 1

#include <iostream>
#include <cmath>
#include <stdlib.h>
using namespace std;

void nhap(int a[][100], int &n)
{
    cout<<"Nhap cap ma tran NxN: ";
    cin>>n;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            cout<<"["<<i<<"]"<<"["<<j<<"]";
            cin>>a[i][j];
        }
    }
}
void xuat(int a[][100], int n)
{
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
}
void hoandoi(int &a,int &b)
{
   int t=a;
    a=b;
    b=t;
}
void tangtheocot(int a[][100], int n, int c)
{
	for(int i = 0; i < n - 1; i++)
	{
		for(int j = i + 1; j < n; j++)
		{
			if(a[i][c] > a[j][c])
			{
				hoandoi(a[i][c], a[j][c]);
			}
		}
	}
}
int main()
{
int a[100][100], n, c;
cout<<"Nhap ma tran A: \n";
nhap(a,n);
cout<<"Xuat ma tran A: \n";
xuat(a,n);
cout<<"Ma tran tang theo cot: \n";
tangtheocot(a,n,c);
xuat(a,n);
return 0;
}

giờ mình lười quá, bạn có biết debug không, debug là thấy chỗ không ổn ngay ấy mà.

2 Likes

nó có in ra mà chỉ in cột đầu tiên à ko biết thiếu chỗ nào

tangtheocot(a,n,c);
Hình như bạn dùng biến c này truyền sang hàm kia nhưng ko khởi tạo giá trị cho nó nên nó luôn bằng 0, trong hàm tăng theo cột cũng vậy à.

nên hàm hoán đổi sẽ luôn hoán đổi a[j][0] và a[i][0]

2 Likes

vậy phải gán giá trị bao nhiêu bạn

bạn phải chạy vòng lặp để tăng dần nó lên

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?