Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: bài toán ma trận

  1. #1
    Ngày gia nhập
    02 2008
    Bài viết
    3

    Mặc định bài toán ma trận

    cho một ma trận vuông (n*n) n<11 sắp xếp các hàng của ma trận theo thứ tự không giảm dần
    ví dụ cho ma trận vuông 4*4
    nhập n=4 :
    1 3 2 4
    6 8 7 9
    1 2 5 4
    3 2 3 2
    thì ta se nhận được kết quả như sau
    1 2 3 4
    6 7 8 9
    1 2 4 5
    2 2 3 3
    cảm ơn mọi người rất nhiều!!!

  2. #2
    Ngày gia nhập
    12 2007
    Bài viết
    6

    mình có giải thuật thế này . Mỗi hàng trong ma trận sẽ được lưu vào một mảng n phần tử a[n]. Bạn chỉ cần tạo hàm sắp xếp không giảm mảng này và lưu các phần tử đã được sắp xếp vào một ma trận mới.
    Bạn thử code xem sao, xin lỗi vì mình không có thời gian để code thử (>"<)

  3. #3
    Ngày gia nhập
    10 2007
    Nơi ở
    HCM
    Bài viết
    46

    các bài dạng như thế này đã có nhiều trên diễn đàn nếu chịu khó bạn sẽ tìm thấy chúng.
    ở đây mình nói sơ qua thuật toán của bài này:
    __Dùng mảng 2 chiều để lưu trữ chúng
    __Sắp xếp theo thứ tự tăng dần trên từng mảng 1 chiều a[i]

  4. #4
    Ngày gia nhập
    04 2008
    Bài viết
    4

    Trích dẫn Nguyên bản được gửi bởi thoigian Xem bài viết
    cho một ma trận vuông (n*n) n<11 sắp xếp các hàng của ma trận theo thứ tự không giảm dần
    ví dụ cho ma trận vuông 4*4
    nhập n=4 :
    1 3 2 4
    6 8 7 9
    1 2 5 4
    3 2 3 2
    thì ta se nhận được kết quả như sau
    1 2 3 4
    6 7 8 9
    1 2 4 5
    2 2 3 3
    cảm ơn mọi người rất nhiều!!!
    Bài này tương đối đơn giản, bạn cứ duyệt từng dòng, và sắp xếp từng dòng thôi. Mình trình bày với bạn cách ắp xếp đơn giản nhất
    Code:
    void HoanVi (int *a, int *b)
    {
    	int x = *a;
    	*a = *b;
    	*b = x;
    }
    
    void SapXep (int a[100][100], int n)
    {
    	for (int i=0; i<n; i++)
    	{
    		for (int j=0; j<n-1; j++)
    		{
    			for (int k=j+1; k<n; k++)
    			{
    				if (a[i][j] > a[i][k])
    				{
    					HoanVi (&a[i][j], &a[i][k]);
    				}
    			}
    		}
    	}
    }
    
    void NhapMang (int a[100][100], int *n)
    {
    	printf ("Nhap so dong va cot:");
    	scanf ("%d", n);
    	for (int i=0; i<*n; i++)
    	{
    		for (int j=0; j<*n; j++)
    		{
    			printf ("Nhap a[%d][%d]:", i, j);
    			scanf ("%d", &a[i][j]);
    		}
    	}
    }
    
    void XuatMang (int A[100][100], int n)
    {
    	for (int i=0; i<n; i++)
    	{
    		for (int j=0; j<n; j++)
    		{
    			printf ("%3d", A[i][j]);
    		}
    		printf ("\n");
    	}
    }
    
    void main ()
    {
    	int A[100][100], n;
    	NhapMang (A, &n);
    	XuatMang (A, n);
    	SapXep (A, n);
    	XuatMang (A, n);
    }

Các đề tài tương tự

  1. Trao đổi liên kết, trao doi logo, Text Link với các webforumblog (free)
    Gửi bởi nguyenlam14990 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 31
    Bài viết cuối: 13-03-2012, 11:53 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn