Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 15 kết quả

Đề tài: mình đang viết chương trình cho hiển thị ra dòng chữ này

  1. #1
    Ngày gia nhập
    11 2011
    Bài viết
    0

    Mặc định mình đang viết chương trình cho hiển thị ra dòng chữ này

    ai giúp mình với
    viết code hiển thị ra màn hình đoạn sau:

    1
    2 3 2
    3 4 5 4 3
    4 5 6 7 6 5 4
    5 6 7 8 9 8 7 6 5
    6 7 8 9 0 1 0 9 8 7 6
    7 8 9 0 1 2 3 2 1 0 9 8 7
    8 9 0 1 2 3 4 5 4 3 2 1 0 9 8
    9 0 1 2 3 4 5 6 7 6 5 4 3 2 1 0 9
    0 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 0

  2. #2
    Ngày gia nhập
    11 2011
    Bài viết
    4

    Xin chào,
    Bạn thử đoạn code sau đây xem sao:

    #include <stdio.h>

    void main()
    {
    char anykey;
    printf("1\n");
    for(int i=2; i<=10; i++)
    {
    int j = i + i - 1;
    int p = i == 10?0:i;

    int dem = 0;
    for(int q=0; q<j/2; q++)
    {
    printf("%d ", p);
    p++;
    if(p == 10)
    {
    p = 0;
    dem++;
    }
    }

    if(dem != 0)
    {
    for(int q=0; q<dem; q++)
    {
    printf("%d ", p);
    p--;
    }

    }

    for(int q=j/2+dem; q<j; q++)
    {
    printf("%d ", p);
    p--;
    if(p == -1)
    p = 9;
    }
    printf("\n");

    }


    printf("\nPress any key to continue");
    scanf("%d", &anykey);
    }

    Chúc bạn thành công

  3. #3
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Ở đây là C# mà. Bỏ code C vào làm gì?

    Visual C# Code:
    1. // hàm in tam giác, dùng console
    2. public void InTamGiacSo()
    3. {
    4.   for (int i=1; i <= 10; i++)
    5.   {
    6.     // chú ý: vòng for này vừa đi tới bắt đầu từ 0, vừa đi lui để kết thúc ở 0
    7.     for (int j=0, chieu = 1; j >= 0; j += chieu)
    8.     {
    9.         Console.Write("{0} ", (i + j) % 10); // in chữ số cuối của số
    10.         if (j >= i - 1) chieu = -chieu; // nếu quá giữa dòng thì đi theo chiều lui
    11.     }
    12.     Console.WriteLine();
    13.   }
    14. }

  4. #4
    Ngày gia nhập
    11 2008
    Bài viết
    207

    Trích dẫn Nguyên bản được gửi bởi VoTichSu Xem bài viết
    Ở đây là C# mà. Bỏ code C vào làm gì?

    Visual C# Code:
    1. // hàm in tam giác, dùng console
    2. public void InTamGiacSo()
    3. {
    4.   for (int i=1; i <= 10; i++)
    5.   {
    6.     // chú ý: vòng for này vừa đi tới bắt đầu từ 0, vừa đi lui để kết thúc ở 0
    7.     for (int j=0, chieu = 1; j >= 0; j += chieu)
    8.     {
    9.         Console.Write("{0} ", (i + j) % 10); // in chữ số cuối của số
    10.         if (j >= i - 1) chieu = -chieu; // nếu quá giữa dòng thì đi theo chiều lui
    11.     }
    12.     Console.WriteLine();
    13.   }
    14. }
    bái phục bác VTS,
    viết code in cái tam giác này cũng dễ thôi nhưng ngắn gọn như bác thì em chưa nghĩ đến bao h

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

    Trích dẫn Nguyên bản được gửi bởi VoTichSu Xem bài viết
    Ở đây là C# mà. Bỏ code C vào làm gì?

    Visual C# Code:
    1. // hàm in tam giác, dùng console
    2. public void InTamGiacSo()
    3. {
    4.   for (int i=1; i <= 10; i++)
    5.   {
    6.     // chú ý: vòng for này vừa đi tới bắt đầu từ 0, vừa đi lui để kết thúc ở 0
    7.     for (int j=0, chieu = 1; j >= 0; j += chieu)
    8.     {
    9.         Console.Write("{0} ", (i + j) % 10); // in chữ số cuối của số
    10.         if (j >= i - 1) chieu = -chieu; // nếu quá giữa dòng thì đi theo chiều lui
    11.     }
    12.     Console.WriteLine();
    13.   }
    14. }
    biến chiều khai báo thế nào vậy a, int chieu=0 sao;

  6. #6
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Mặc định mình đang viết chương trình cho hiển thị ra dòng chữ này

    Trích dẫn Nguyên bản được gửi bởi khanhduy.8hpm Xem bài viết
    biến chiều khai báo thế nào vậy a, int chieu=0 sao;
    for (int j=0, chieu = 1; j >= 0; j += chieu) // khai báo ở đây, cùng một thể với j
    vì j = j+ chieu nên chiêu = 1 là đi tới, chieu = -1 là đi lui

    Trích dẫn Nguyên bản được gửi bởi longtth Xem bài viết
    ...
    viết code in cái tam giác này cũng dễ thôi nhưng ngắn gọn như bác thì em chưa nghĩ đến bao h
    Vẽ lên giấy rồi tìm cái công thức thôi.

    Code:
    Đại khái cách mò:
    
    Ở dòng i=5 ta có
    
    5       6       7       8       9       8       7       6       5
    =i      =i+1    =i+2    =i+3    =i+4    =i+3    =i+2    =i+1    =i+0   --> đặt là i+j thì được
    j=0     j=1     j=2     j=3     j=4     j=3     j=2     j=1     j=0   --> xét điểm đỉnh thì thấy
                                    4=i-1
    
    Thử với dòng i=6, cũng thấy đúng
    Lập giải thuật, viết code
    Chạy thử lại với các trị biên (boundary test), tức là i=1 và i=10 xem code có ra đúng không,
      và nhét vào các if-else nếu cần.
    Hết

  7. #7
    Ngày gia nhập
    11 2011
    Bài viết
    70

    Anh xử lý như thế nào để chieu = 1 và chieu = -1 vậy, cách của anh có vẻ hay, em muốn học hỏi

  8. #8
    Ngày gia nhập
    06 2011
    Bài viết
    277

    Công nhận đoạn code của VTS ngắn gọn thật ^^!
    Sống là để cho đi và ...... Nhận lại

  9. #9
    Ngày gia nhập
    06 2011
    Bài viết
    277

    Trích dẫn Nguyên bản được gửi bởi khanhduy.8hpm Xem bài viết
    Anh xử lý như thế nào để chieu = 1 và chieu = -1 vậy, cách của anh có vẻ hay, em muốn học hỏi
    E ko thấy khi j >= i-1 thì gán chieu = -chieu ah??

    ví dụ j = 4 và i = 5 và chieu = 5 thì lúc đó j = i -1 rùi!! nên gán lại chieu = -5

    Sau đó thì chỗ j += chieu lúc này sẽ giảm cho đến lúc j >=0. Thế là 1 dãy số có tăng lẫn giảm rùi đó!!

    @VTS: giải thích thế này ok ko ta??? hehe
    Sống là để cho đi và ...... Nhận lại

  10. #10
    Ngày gia nhập
    12 2009
    Nơi ở
    The country of happiness
    Bài viết
    182

    tư tưởng string :
    Visual C# Code:
    1.         static int MinVal(int a, int b)
    2.         {
    3.             if (a < b) return a;
    4.             return b;
    5.         }
    6.         static void PrintResult(string a)
    7.         {
    8.             for (int i = 0; i < a.Length; ++i)
    9.                 Console.Write(a[i] + " ");
    10.             for (int i = a.Length - 2; i >= 0; --i)
    11.                 Console.Write(a[i] + " ");
    12.             Console.WriteLine();
    13.         }
    14.         static void Main()
    15.         {
    16.             const string s = "0123456789";
    17.             for (int halflen = 1; halflen <= 10; ++halflen)
    18.             {
    19.                 string ret = "";
    20.                 int start = halflen % 10;
    21.                 int len1 = MinVal(halflen, 10 - start);
    22.                 int len2 = halflen - len1;
    23.                 ret = ret + s.Substring(start, len1);
    24.                 ret = ret + s.Substring(0, len2);
    25.                 PrintResult(ret);
    26.             }
    27.             Console.ReadLine();
    28.  
    29.         }
    Trích dẫn Nguyên bản được gửi bởi Wazi Armstrong Xem bài viết
    Ôi skill của mình đã đạt đến hàng tuyệt đỉnh
    Không chỉ ăn, tắm, đi lại có thể code
    Mà giờ đã mình có thể code cả khi ngủ. Code tạm vào buffer của não, lúc nào dậy chỉ việc viết ra một cách trôi chảy không lưỡng lự.
    PS: Nếu ngủ dài rảnh rảnh có thể debug luôn, dậy chỉ việc build ?
    Trích dẫn Nguyên bản được gửi bởi vietanh8286 Xem bài viết
    Lập trình viên giỏi là lập trình viên có vợ

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

  1. Lập trình đồ họa với C++ | Xóa một dòng chữ đã viết lên màn hình?
    Gửi bởi quangquy309 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 11
    Bài viết cuối: 09-09-2012, 06:20 PM
  2. Viết mỗi từ trong xâu ở 1 dòng(new mem)
    Gửi bởi themask trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 01-02-2012, 10:13 PM
  3. Cách viết một lệnh C# trên nhiều dòng?
    Gửi bởi vanthuy147 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 13
    Bài viết cuối: 25-10-2011, 11:23 PM
  4. viết phần khai báo để cài đặt một dòng văn bản
    Gửi bởi thanhhung89hs trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 16-08-2011, 01:24 AM
  5. Nên viết 1 dòng code dài trên 1 dòng hay trên nhiều dòng??
    Gửi bởi longtth trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 25-10-2010, 01:07 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