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

Đề tài: Vẽ hình tam giác số trong C, làm như thế nào?

  1. #1
    Ngày gia nhập
    03 2009
    Nơi ở
    hà nội
    Bài viết
    0

    Mặc định Vẽ hình tam giác số trong C, làm như thế nào?

    ..............1
    ............123
    ..........12345
    ...................
    ..................
    ........................
    1234....n
    theo mình hiểu có ba biến chạy là
    i: hiển thị số
    j: dung cho xuống dòng
    k: dùng cho khoảng trắng
    Mình dùng vòng lặp for
    biến đầu tiên i mình gán giá trị ban đầu i=1 ; i<=n ;i++
    biến thứ hai dùng cho xuống dòng j=1;k<=n;k++
    biến thứ ba dùng cho khoảng trắng k=i-i;k=>n;k--

    đấy là phân tích bài của mình, nhưng mình không viết ra được code
    code mình viết

    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    void main()
    {
    int n,i,k,j;
    printf (" moi nhap so tu nhien n");
    scanf ("%d",&n);
    j=0;
    i=0;
    for (
    i=0;i<=n;i++)
    {
    printf ("%d",i++);
    for (
    j=0;j<=n;j++)
    printf ("\n");
    }

    getch();

    không hiểu sao khi chạy nó cách dài tít luôn hix
    bạn nào giải giùm mình và phân tích từng câu lệnh một nhé để mình hiểu cho rõ hơn
    Cảm ơn nhiều

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

    Thử cái này xem đc không bạn
    C Code:
    1. for (i=0;i<n;i++)
    2. {
    3.      for (j=0;j<n-i;j++) printf(" ");
    4.      for (j=0;j<=i;j++) printf("%d",j+1);
    5.      printf("\n");
    6. }

  3. #3
    Ngày gia nhập
    03 2009
    Nơi ở
    hà nội
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi QuangHoang Xem bài viết
    Thử cái này xem đc không bạn
    C Code:
    1. for (i=0;i<n;i++)
    2. {
    3.      for (j=0;j<n-i;j++) printf(" ");
    4.      for (j=0;j<=i;j++) printf("%d",j+1);
    5.      printf("\n");
    6. }
    mình đã thử code của cậu nhưng không được
    đây là code mình hoàn chỉnh từ code của cậu cho, cậu chỉ giùm mình chỗ nào sai nhé vì khi mình biên dịch nhập n=5 nó chỉ ra mỗi số 0
    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    void main()
    {
    float n,i,j;
    printf ("nhap so tu nhien n");
    scanf ("%d",&n);
    for (
    i=0;i<n;i++)
    {
         for (
    j=0;j<n-i;j++)
         
    printf(" ");
         for (
    j=0;j<=i;j++)
         
    printf("%d",j+1);
         
    printf("\n");

    }
    getch();


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

    Lỗi là ở bạn đó, sao lại khao báo float. Tuy nhiên code mình cũng in không đúng lắm, có sửa lại một chút rồi.
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. int main()
    5. {
    6.     int n,i,j;
    7.     printf (" Nhap n = ");
    8.     scanf("%d",&n);
    9.     for (i=0; i<n; i++)
    10.     {
    11.         for (j=0;j<n-i;j++)
    12.             printf(" ");
    13.         for (j=0;j<=2*i;j++)  ////
    14.             printf("%d",j+1);
    15.         printf("\n");
    16.     }
    17.     getch();
    18. }

  5. #5
    Ngày gia nhập
    03 2009
    Nơi ở
    hà nội
    Bài viết
    0

    cảm ơn nhé code đúng rồi có lẽ mình kém thuật toán quá nên gán tận 3 biến.
    mình đọc code nhưng vẫn chưa hiểu tại sao j <= 2*i thì đúng còn nếu là j<=i thì lại chỉ ra một vế nhỉ
    Mình hiểu là: mỗi một biến i thể hiện lênh \n thì biến j sẽ tạo ra một khoảng trắng và một giá trị j++
    mình hiểu thế đúng không cậu giải thích giùm mình kỹ câu lệnh được không, vì mình muốn hiểu rõ code sẽ được chạy như thế nào
    phiền cậu chút nhé mới học nên phân tích cứ thấy hoang mang và không tin tưởng lắm
    Cảm ơn!

  6. #6
    Ngày gia nhập
    08 2011
    Bài viết
    5

    Mặc định Vẽ hình tam giác số trong C, làm như thế nào?

    Trích dẫn Nguyên bản được gửi bởi QuangHoang Xem bài viết
    Lỗi là ở bạn đó, sao lại khao báo float. Tuy nhiên code mình cũng in không đúng lắm, có sửa lại một chút rồi.
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. int main()
    5. {
    6.     int n,i,j;
    7.     printf (" Nhap n = ");
    8.     scanf("%d",&n);
    9.     for (i=0; i<n; i++)
    10.     {
    11.         for (j=0;j<n-i;j++)
    12.             printf(" ");
    13.         for (j=0;j<=2*i;j++)  ////
    14.             printf("%d",j+1);
    15.         printf("\n");
    16.     }
    17.     getch();
    18. }
    Đúng bài mình đang làm.
    Bạn giải thích giùm mình cái chỗ:
    for(j=0;j<=2*i;j++)
    tại sao j<=2*i ? chỗ này mình nghĩ mãi chưa thông. ^^ giúp mình nhé. Thanks

  7. #7
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    Trích dẫn Nguyên bản được gửi bởi Shock0z Xem bài viết
    Đúng bài mình đang làm.
    Bạn giải thích giùm mình cái chỗ:
    for(j=0;j<=2*i;j++)
    tại sao j<=2*i ? chỗ này mình nghĩ mãi chưa thông. ^^ giúp mình nhé. Thanks
    1 dòng thì có 2*(số thự tự dòng)+1 số.ko pít đúng ý tác giả ko hì

Các đề tài tương tự

  1. Vẽ tam giác trong lập trình C/C++ thực hiện như thế nào?
    Gửi bởi ketbeophi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 18
    Bài viết cuối: 31-01-2017, 02:20 AM
  2. Vẽ biểu đồ trong C# như thế nào?
    Gửi bởi iamonlining trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 16
    Bài viết cuối: 02-04-2013, 03:34 PM
  3. Graphic Vẽ đồ thị của một hàm trong C#, cần làm thế nào?
    Gửi bởi mtuanlatoi trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 9
    Bài viết cuối: 19-01-2013, 12:10 AM
  4. Graphic Cách vẽ 1 điểm cho trước trong C# như thế nào ?
    Gửi bởi hoangnguy trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 23-09-2011, 08:57 PM
  5. Vẽ đường chéo trong C# như thế nào?
    Gửi bởi vrael88 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 28-01-2010, 09:34 AM

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