HN - Aptech
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

HN - Aptech


 
Trang ChínhTrang Chính  PortalPortal  GalleryGallery  Latest imagesLatest images  Tìm kiếmTìm kiếm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

 

 In ma trận tam giác( tiếp theo)

Go down 
2 posters
Tác giảThông điệp
nbp2983
Gà con
Gà con



Tổng số bài gửi : 23
Join date : 18/06/2009

In ma trận tam giác( tiếp theo) Empty
Bài gửiTiêu đề: In ma trận tam giác( tiếp theo)   In ma trận tam giác( tiếp theo) Icon_minitimeSun 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.
Về Đầu Trang Go down
haph86
Gà mới lớn
Gà mới lớn
haph86


Tổng số bài gửi : 40
Join date : 04/06/2009

In ma trận tam giác( tiếp theo) Empty
Bài gửiTiêu đề: Re: In ma trận tam giác( tiếp theo)   In ma trận tam giác( tiếp theo) Icon_minitimeMon Jul 06, 2009 12:45 am

em comment bên topic kia mà ko thấy anh reply .T_T..
Về Đầu Trang Go down
 
In ma trận tam giác( tiếp theo)
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» In ma trận tam giác(vấn đề mở)
» c:12/q3/phan in ma tran kha hap dan!

Permissions in this forum:Bạn không có quyền trả lời bài viết
HN - Aptech :: Khóa Học :: SEMESTER I :: C :: Bài Tập-
Chuyển đến