bạn post code lên đây
Hết mảng A thì dừng chứ sao
giúp em bài tách dãy số A thành dãy ko âm B và âm C :
em viết code rồi nhưng ko biết điều kiện để dừng lặp mảng B và mảng C :
mong mọi người chỉ bảo .
bạn post code lên đây
Hết mảng A thì dừng chứ sao
chào bạn theo tôi để tách mảng A thành 2 dãy âm và dãy dương không cần cầu kỳ như bạn nghĩ đâu bạn cứ post code của bạn nên .Bạn thử tham khảo code này nhé:
Yêu cầu bạn để code vào tag code nhé. Đọc Nội quy để biết thêm chi tiết.Code:#include<stdio.h> #include<conio.h> #define n 11 int a[11]={5,-4,-3,-2,-1,0,1,2,3,4,-5} ; int b[11],c[11]; int main() { int i,idx; printf("day so ko am : "); for(i=0;i<11;i++) { if(a[i]>=0) { printf("%d\t",a[i]); } } printf("\n"); printf("day so am : "); for(i=0;i<11;i++) if(a[i]<0) { printf("%d\t",a[i]); } getch(); }
Đã được chỉnh sửa lần cuối bởi Kevin Hoang : 14-01-2008 lúc 11:16 PM. Lý do: Nhắc nhở
bạn có thể dùng hai mảng khác .rồi duyệt mảng cần tách .gọi i,j là số phần tử của hai mảng đó . mỗi khi thêm vào mảng thì tăng i ,j lên một đơn vị (i++,j++). vậy thôi .
đây là code của mình mong mọi người sua:
______________________________Code:# include <stdio.h> # include <conio.h> main() { int A[100],B[100],C[100]; int n,i; int k =1,l=1; clrscr(); printf ("\n nhap n:"); scanf ("%d",&n); for (i=1;i<=n;i++) { printf ("\n nhap A[%d]",i); scanf ("%d",&A[i]); } for (i=1;i<=n;i++) if (A[i]>0) {B[k]=A[i]; k++; } else {C[l]=A[i] ; l ++; } for (k=1;k<=n;k++) printf ("\n mang %d",B[k]); for (l=1;l<=n;l++) printf ("\n mang %d",C[l]); getch(); }
Chú ý đặt code vào tag.Vi phạm lần nữa bài bạn sẽ bị del
Đã được chỉnh sửa lần cuối bởi Alviss : 15-01-2008 lúc 12:41 PM.
bạn xem lại cho mình 2 vong for "for (k=1;k<=n;k++) và for (l=1;l<=n;l++)" bạn có chắc là k và l chạy tới n không theo tui nó chỉ chạy tới max cua k và l thôi bạn xem lại đây là code của bạn tui sửa lại
Code:# include <stdio.h> # include <conio.h> main() { int A[100],B[100],C[100]; int n,i; int k =1,l=1; int maxk=0; printf ("\n nhap n:="); scanf ("%d",&n); for (i=1;i<=n;i++) { printf ("\n nhap A[%d]=: ",i); scanf ("%d",&A[i]); } for (i=1;i<=n;i++) if (A[i]>=0) {B[k]=A[i]; k++; } else {C[l]=A[i] ; l++; } if(maxk<k) maxk=k; printf("mang khong am : "); for (k=1;k<maxk;k++) { printf ("%d\t",B[k]); } printf("\n"); int maxl=0; if(maxl<l) maxl=l; printf("mang am : "); for (l=1;l<maxl;l++) printf ("%d\t",C[l]); getch(); }
cho mình cám ơn bạn .Mình đã chạy đuoc chương trình rồi . cho mình hỏi tại sao ban ko cho k,l chạy đến = maxk,maxl
Chương trình này mình sửa lại từ chương trình trên. Thay vì tạo ra 2 mảng mới chia mảng cũ thành 2 đoạn một đoạn toàn các số dương, một đoạn toàn các số âm
Code:# include <stdio.h> # include <conio.h> main() { int A[100]; int n,i; int k =1,l=1; int maxk=0; printf ("\n nhap n:="); scanf ("%d",&n); for (i=1;i<=n;i++) { printf ("\n nhap A[%d]=: ",i); scanf ("%d",&A[i]); } int f=1,r=n, t; do { while ((A[f]>=0) & (f< r)) f++; while ((A[r]<0) & ( r> f))r--; t= A[f]; A[f]= A[r]; A[r]= t; } while (f<r); if(maxk<k) maxk=k; printf("mang khong am : "); for (k=1;k<f;k++) { printf ("%d\t",A[k]); } printf("\n"); int maxl=0; if(maxl<l) maxl=l; printf("mang am : "); for (l=r;l<=n;l++) printf ("%d\t",A [l]); getch(); }
cám ơn nhưng trả lời câu hỏi chính của minh . mình hỏi thêm có phải gán maxk=0 ,maxl=0 do phần tử đầu tiên của mảng hay như thế nào mong mọi người góp ý
sao ko ai vào trả lời mình thế ?