Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Bài tập C | In ngôi sao đối xứng bằng C

  1. #1
    Ngày gia nhập
    07 2008
    Bài viết
    2

    Thumbs down Bài tập C | In ngôi sao đối xứng bằng C

    các bạn giúp mình giải bài tập này nhé !!!(lưu ý là các ngôi sao đối xứng nhau từ trên xuống dưới, có nghĩa là dòng ở dưới thụt vào một khoảng trắng so với hàng ở trên, không phải canh trái như ở ví dụ dưới)
    input N (N<=25 and N is odd number). Print the N row in screen as follow :
    Example :
    With N = 3
    ***
    *
    ***
    With N = 5
    *****
    ***
    *
    ***
    *****

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    cái này bạn dùng 2 cặp vòng for giảm dần là xong ( tuy là hơi dở một tí nhưng nó là cách dễ nhất ). một vòng for giảm đi 1, một vòng for phía trong giảm một nừa.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    07 2008
    Bài viết
    2

    Bạn nói nghe dễ nhỉ, Bạn có thể cho xem code cua bạn được không.

  4. #4
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Hiện thực hóa ý tưởng của meo con nhé:
    Code:
    #include <stdio.h>
    
    int main()
    {
         int i,j,t=0,n=5;
         for (i=0;i<n;i++)
         {
              for (j=n-1;j>=t;j--)
              {
                   printf("*");
              }
              if (i<n/2) t+=2;
                   else t-=2;
              printf("\n");
         }
         getch();
    }

  5. #5
    Ngày gia nhập
    10 2007
    Nơi ở
    TP. HCM
    Bài viết
    52

    Yêu cầu của bài bạn đó là in ra dạng sao đối xứng như vầy nè:

    N = 7

    *******
    =*****=
    ==***==
    ===*===
    ==***==
    =*****=
    *******

    Những bài in sao này đơn giản thôi, chỉ cần nhìn quy luật là làm được. Code của mình đây bạn thử xem:

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void main()
    5. {
    6.     int N;                  /* N la so le nhap vao */
    7.     int sosao, sokt;        /* sosao, sokt lan luot la so sao va so ky tu trang can in ra */
    8.     int i, j, k;            /* i, j, k la cac bien chay cho vong lap */
    9.  
    10.     do {
    11.         printf("Nhap so le N: ");
    12.         scanf("%d", &N);
    13.     } while (!(N % 2));     /* nhap lai neu N chan */
    14.    
    15.     sosao = N;
    16.     sokt = 0;
    17.     for (i = 1; i <= N; ++i) {
    18.         for (j = 1; j <= sokt; ++j)     /* in sokt tren dong i */
    19.             printf(" ");
    20.         for (k = 1; k <= sosao; ++k)    /* in sosao tren dong i */
    21.             printf("*");
    22.         if (i < N / 2 + 1) {
    23.             sokt++;                     /* tang 1 sokt, giam 2 sosao khi in cac dong phia tren dong chinh giua */
    24.             sosao = sosao - 2;         
    25.         } else {
    26.             sokt--;                     /* giam 1 sokt, tang 2 sosao khi in cac dong phia duoi con lai */
    27.             sosao = sosao + 2;         
    28.         }
    29.         printf("\n");
    30.     }
    31.     getch();
    32. }
    Đã được chỉnh sửa lần cuối bởi Chautieu47 : 30-08-2008 lúc 07:38 AM.
    /* The thing that I think is the thing that I do. */

  6. #6
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mặc định Bài tập C | In ngôi sao đối xứng bằng C

    Trích dẫn Nguyên bản được gửi bởi vudatasm Xem bài viết
    Bạn nói nghe dễ nhỉ, Bạn có thể cho xem code cua bạn được không.
    Đây là code của mình chạy được trong trường hợp chẵn và lẻ. Code của mình dĩ nhiên là không hay nhưng nó thực hiện đúng như ý tưởng mình đã nêu. Còn nếu bạn cần in sao và canh giữa thì đã có code của bạn chautieu47 rồi.

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void main()
    5. {
    6.     int n, k;
    7.     int i, j;
    8.  
    9.     printf("Nhap N : ");
    10.     scanf("%d",&n);
    11.  
    12.     for (i=1,k=n;i<=n/2;i++)
    13.     {
    14.         for (j=1;j<=k;j++)
    15.             printf("*");
    16.  
    17.         k-=2;
    18.         printf("\n");
    19.     }
    20.  
    21.     if (n%2)
    22.     {
    23.         printf("*\n");
    24.         k = 3;
    25.     }
    26.     else
    27.     {
    28.         k = 2;
    29.     }
    30.  
    31.     for (i=1;i<=n/2;i++)
    32.     {
    33.         for (j=1;j<=k;j++)
    34.             printf("*");
    35.  
    36.         k+=2;
    37.         printf("\n");
    38.     }
    39.  
    40.     getch();
    41. }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  7. #7
    Ngày gia nhập
    05 2009
    Bài viết
    3

    Mặc định Còn hình sao thế này???????


  8. #8
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void main()
    5. {
    6.     int h;
    7.     printf("Nhap chieu cao : ");
    8.     scanf("%d",&h);
    9.  
    10.     int h2 = h / 2;
    11.     int n = h2 * 2 + 1;
    12.    
    13.     int h3 = h2 + (h % 2);
    14.  
    15.     for (int i=0;i<h3;i++)
    16.     {
    17.         for (int j=0;j<n;j++)
    18.             if (j >= (h2 - i) && j <= (h2 + i))
    19.                 printf("*");
    20.             else
    21.                 printf(" ");           
    22.    
    23.         printf("\n");
    24.     }
    25.  
    26.     h3 = h / 2 - 1;
    27.     for (i=h3;i>=0;i--)
    28.     {
    29.         for (int j=0;j<n;j++)
    30.             if (j >= (h2 - i) && j <= (h2 + i))
    31.                 printf("*");
    32.             else
    33.                 printf(" ");           
    34.    
    35.         printf("\n");
    36.     }
    37.  
    38.  
    39.     getch();
    40.  
    41. }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn