HN - Aptech


 
IndexIndex  PortalPortal  CalendarCalendar  GalleryGallery  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Share | 
 

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

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
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

Bài gửiTiê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.
Về Đầu Trang Go down
Xem lý lịch thành viên
haph86
Gà mới lớn
Gà mới lớn


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

Bài gửiTiê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..
Về Đầu Trang Go down
Xem lý lịch thành viên
 
In ma trận tam giác( tiếp theo)
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» HCM- Bán căn hộ Lotus Garden, gần Đầm Sen.Hướng đông nam.Giá 1.03 tỷ
» Máy đo huyết áp bắp tay có chỉ thị màu theo phân loại của WHO
» Những dự án dọc theo tuyến đường sắt đô thị trên cao sẽ thành đắc địa
» IN TUI XỐP, IN TUI XOP, IN BAO XỐP GIÁ RẺ - ĐT: 0937.345.224
» Mẫu chứng chỉ thí nghiệm viên xây dựng theo luật kinh phí thấp/0986801106

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