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

Đề tài: Sắp xếp ma trận theo thứ tự tăng dần của các số chẵn rồi đến các số lẻ??

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    2

    Mặc định Sắp xếp ma trận theo thứ tự tăng dần của các số chẵn rồi đến các số lẻ??

    Cho ma trận 4x4 với các phần tử được nhập từ bàn phím, sắp xếp ma trận theo thứ tự tăng dần của các số chẵn rồi đến các số lẻ. Ví dụ:
    11 2 13 4
    5 9 3 7
    10 15 12 8
    6 14 1 16
    Sẽ được sắp xếp thành
    2 4 6 8
    10 12 14 16
    1 3 5 7
    9 11 13 15
    Lập lưu đồ và viết chương trình.

  2. #2
    Ngày gia nhập
    11 2008
    Bài viết
    116

    ý tưởng của tui về bài này như sau: Đầu tiên bạn khai báo thêm 2 mảng 1 chiều a[] và b[] . Sau đó bạn gán tất cả các phần tử chẵn vào mảng a và các phần tử lẻ vào mảng b. Sau đó gán ngược lại mảng a vào mảng 2 chiều trước rồi tiếp tục gán mảng b vào mảng 2 chiều. Vậy Thôi. Ai có cách làm nào mà ko cần khai báo thêm mảng phụ thì post ý tưởng lên cho anh em tham khảo nha.

    Code:
    /*sap xep cac phan tu so chan truoc roi toi so le*/
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #define MAX 100
    #include <time.h>
    void nhap(int ia[MAX][MAX],int &n);
    void sx(int ia[MAX][MAX],int n);
    void nhap(int ia[MAX][MAX],int &n)
    {
    	srand ( time( 0 ) );
    	for(int i=0;i<n;i++)
    		{			
    		for(int j=0;j<n;j++)
    			printf("%d   ",ia[i][j]=rand()%201-100);	
    		printf("\n");
    		}
    }
    void sx(int ia[MAX][MAX],int n)
    {
    	int a[100],r,k,i,j;
    	r=k=0;
    	for(int i=0;i<n;i++)
    		for(int j=0;j<n;j++)
    			if(abs(ia[i][j])%2==0)
    				a[k++]=ia[i][j];
    	for(int i=0;i<n;i++)
    		for(int j=0;j<n;j++)
    			if(abs(ia[i][j])%2==1)
    				a[k++]=ia[i][j];
    	for(int i=0;i<n;i++)
    		for(int j=0;j<n;j++)
    			ia[i][j]=a[r++];
    	for(int i=0;i<n;i++)
    		{
    			for(int j=0;j<n;j++)
    				printf("%d  ",ia[i][j]);
    			printf("\n");
    		}
    }
    void main()
    {
    	int ia[MAX][MAX],n;
    	printf("\nnhap cap ma tran: ");
    	scanf("%d",&n);
    	nhap(ia,n);
    	printf("\nmang da xep: \n");
    	sx(ia,n);
    }
    Đã được chỉnh sửa lần cuối bởi clementboy03 : 02-04-2009 lúc 07:38 PM.

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

  1. Kỹ thuật C Sắp xếp tăng dần theo đường chéo phụ trong ma trận như thế nào? Các bạn cho mình h
    Gửi bởi phanvanngoc trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 19-05-2011, 06:27 PM
  2. Sắp xếp tăng dần theo dường theo dường chéo phụ của ma trận như thế nào các bạn.
    Gửi bởi phanvanngoc trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 04-05-2011, 11:08 AM
  3. Sắp xếp mảng theo chẵn lẽ và tăng dần trên C?
    Gửi bởi interpol_trinh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 14
    Bài viết cuối: 21-04-2009, 10:11 PM
  4. Liệt kê các phần tử của ma trận theo thứ tụ tăng dần
    Gửi bởi rong3sao trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 05-04-2009, 07:55 AM
  5. sắp xếp mảng số nguyên chẵn tăng dần, lẻ tăng dần, không dùng mảng tạm
    Gửi bởi hailoc12 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 09-08-2006, 11:44 AM

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