nbp2983 Gà con
Tổng số bài gửi : 23 Join date : 18/06/2009
| Tiêu đề: In ma trận tam giác( tiếp theo) Sun Jul 05, 2009 1:56 pm | |
| - Code:
-
Mong rằng bài viết sau sẽ giúp các bạn có một cái nhìn tổng quan hơn về yều cầu in ma trận trong đề thi sắp tới!! Trước tiên ta xem lại code12/q3(phần in ma trận), có một cách làm khác (dùng while và for) khá thú vị sau đây: //cod12/q3(phan in ma tran ) void in(int n, int m, int c[]) { int i=0,j; printf("\nma tran:\n"); while(i<n+m) { for(j=0;j<n;j++) { if(i<n+m) { printf("\t"); printf("%d",c[i]); } else { printf("\t"); printf("%d",0); } i++; } printf("\n\n"); } } dựa trên ý tưởng này ta đưa ra một cách viết khác cho code14/q3 (phần in ma trận tam giác dưới) như sau:
//code14/q3(phan in ma tran tam giac duoi) void hien(int n, int a[]) { int i,j,k; i=k=0; while(i<n) { k++; for(j=0;j<k;j++) { if(i<n) { printf("\t"); printf("%d",a[i]); } else { printf("\t"); printf("%d",0); } i++;
} printf("\n\n"); } hơn nữa ta có thể mở rộng code cho việc in ma trận tam giác trên: void hien(int n, int a[]) { int i,j,h,k; i=h=k=0; while(i<n) { k++; for(j=0;j<k;j++) i++; printf("\n"); } i=0; while(h<k) { for(j=0;j<h;j++) printf("\t"); for(j=h;j<k;j++) { if (i<n) { printf("\t"); printf("%d",a[i]); } else { printf("\t"); printf("%d",0); } i++; } printf("\n\n"); h++; } }
còn hai dạng ma trận tam giác dưới và trên nữa (cách làm tương tự), phần in này dành cho bạn đọc coi như bài tập!!
thậm chí code8/q2(in ma trận sao) cũng được viết lại khá dễ hiểu như dưới đây: void hien(int n) { int i,h=0,k=0; while(k<n) { if(k<n/2) { for(i=0;i<h;i++) printf(" "); for(i=h;i<n-h;i++) printf("*"); printf("\n"); h++; } else { for(i=0;i<h;i++) printf(" "); for(i=h;i<n-h;i++) printf("*"); printf("\n"); h--; } k++; } } các bạn lấy về chạy thử xem thế nào, đảm bảo không "đẹp" không "lấy tiền", hihi... Đó là một số hướng suy nghĩ của mình, ai có hướng suy luận khác thì cùng góp ý nhé, chúc thành công!!
Được sửa bởi nbp2983 ngày Mon Jul 06, 2009 11:12 am; sửa lần 1. | |
|
haph86 Gà mới lớn
Tổng số bài gửi : 40 Join date : 04/06/2009
| Tiêu đề: Re: In ma trận tam giác( tiếp theo) Mon Jul 06, 2009 12:45 am | |
| em comment bên topic kia mà ko thấy anh reply .T_T.. | |
|