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

Đề tài: trộn mảng trong C

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

    Smile trộn mảng trong C

    đây là CODE của em
    Code:
    #include<stdio.h>
    #include<conio.h>
    main()
    	{
    		int  b[]={2,4,6,8,10};
    	    int a[]={1,3,5,7,9,11};	  
    		int i,j,k,t=0;
    	    clrscr();
    		for(i=0;i<=4;i++)
    			for (j=0;j<=(5+t);j++)
    			 if (b[i] < a[j])
    				{
    				  for(k=(5+t);k>=j;k--)
    				    a[j+1]=a[j];
    				    a[j]=b[i];
    				    t+=1;
    				    break;
    				}
    			 else
    			 if ( j==(5+t)) a[5+t+1]=b[i];
    			 for(i=0;i<=10;i++)
    			 printf("%3d",a[i]);
    getch();
        }
    giải thích giùm cám ơn nhìu trộn 2 mảng với nhau
    em làm h3m bít sai chỗ nào cả....

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

    trộn kiểu gì ? -.-'
    nếu lung tung hết thì cứ tạo 1 mảng c = số pt mảng a+ số pt mảng b rồi bỏ hết vào

  3. #3
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Code demo của mình, bạn test thử xem đúng không mà dùng nhé.
    Code:
    //Ghep 2 mang khong giam, giu nguyen tinh chat
    #include<stdio.h>
    #include<conio.h>
    main()
    {
         int a[]={2,4,6,8,10},n=5;
         int b[]={1,3,5,7,9,11,12,13},m=8;	  //Dung m,n cho tong quat
    	int i=0,j=0,k=0,c[20];
    	while(i<=n && j<=m)
    	{
    	     if(a[i]>b[j])
    	     {
    	          c[k]=b[j];
    	          j++;
    	     }
    	     else
    	     {
    	          c[k]=a[i];
    	          i++;
    	     }
    	     k++;
    	}
    	if (i>=n) while(j<m){c[k++]=b[j++];}
    	else if (j>=m) while(i<n){c[k++]=a[i++];}
    	for(k=0;k<m+n;k++)
              printf("\n%4d",c[k]);
    }

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

    theo ý của cậu nói thì sẽ trộn 2 mảng lại với nhau và sắp xếp theo chiều tăng dần của mảng mới ah,bài viết sao lăng nhăng quá,đến đề bài cũng không rõ ràng

  5. #5
    Ngày gia nhập
    07 2008
    Bài viết
    30

    ưh sorry..tức là giả sử có 2 mảng tăng dần trộn 2 mảng lại vẫn đảm bảo thứ tự tăng dần cáo lỗi hhjhj ^^

  6. #6
    Ngày gia nhập
    07 2008
    Bài viết
    30

    Mặc định trộn mảng trong C

    Trích dẫn Nguyên bản được gửi bởi QuangHoang Xem bài viết
    Code demo của mình, bạn test thử xem đúng không mà dùng nhé.
    Code:
    //Ghep 2 mang khong giam, giu nguyen tinh chat
    #include<stdio.h>
    #include<conio.h>
    main()
    {
         int a[]={2,4,6,8,10},n=5;
         int b[]={1,3,5,7,9,11,12,13},m=8;	  //Dung m,n cho tong quat
    	int i=0,j=0,k=0,c[20];
    	while(i<=n && j<=m)
    	{
    	     if(a[i]>b[j])
    	     {
    	          c[k]=b[j];
    	          j++;
    	     }
    	     else
    	     {
    	          c[k]=a[i];
    	          i++;
    	     }
    	     k++;
    	}
    	if (i>=n) while(j<m){c[k++]=b[j++];}
    	else if (j>=m) while(i<n){c[k++]=a[i++];}
    	for(k=0;k<m+n;k++)
              printf("\n%4d",c[k]);
    }
    bạn có thể giải thích thuật toán của bạn không cám ơn

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

    thuật toán đó là:khai báo một mảng phụ c[20],thực hiện vòng lặp,so sánh lần lượt các phần tử của mảng a[] bà b[],cái nào nhỏ hơn thì bỏ vào c[],và mảng nào dc bỏ vào thì biến đếm tăng lên 1 để so sánh phần tử kế tiếp,cứ thế!!cuối cùng ktra xem mảng nào còn nếu 1 mảng đã hết,nếu cả 2 cùng hết thì thôi,ngc lại sẽ chép phần còn lại vào mảng c[].cũng dễ hiểu

  8. #8
    Ngày gia nhập
    07 2008
    Bài viết
    30

    uh cám ơn 2 anh nhìu nhìu em hỉu roài

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

    Mặc định ban giup minh mot chut

    Trích dẫn Nguyên bản được gửi bởi rocker216 Xem bài viết
    thuật toán đó là:khai báo một mảng phụ c[20],thực hiện vòng lặp,so sánh lần lượt các phần tử của mảng a[] bà b[],cái nào nhỏ hơn thì bỏ vào c[],và mảng nào dc bỏ vào thì biến đếm tăng lên 1 để so sánh phần tử kế tiếp,cứ thế!!cuối cùng ktra xem mảng nào còn nếu 1 mảng đã hết,nếu cả 2 cùng hết thì thôi,ngc lại sẽ chép phần còn lại vào mảng c[].cũng dễ hiểu
    ban chuyen sang vong lap for dk k? minh dung vong lap for, no in ra bi sai ban ah. giup minh vs

  10. #10
    Ngày gia nhập
    12 2012
    Nơi ở
    TIN5A - UNETI
    Bài viết
    167

    trộn hai mảng đã sắp sếp hả bạn

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