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
đây là CODE của em
giải thích giùm cám ơn nhìu trộn 2 mảng với nhauCode:#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(); }
em làm h3m bít sai chỗ nào cả....
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
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]); }
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
ư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 ^^
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
uh cám ơn 2 anh nhìu nhìu em hỉu roài
trộn hai mảng đã sắp sếp hả bạn