30/09/2018, 18:08

Cho em hỏi bài này có cách vào viết ngắn gọn chỉ dùng vòng lặp for kết hợp printf thôi không?

#include <stdio.h>
#include <stdlib.h>

int main()
{
   for(int i=0;i<4;i++)
   {
       if(i<3)
       {
           for(int j=0;j<i;j++)
            printf("* ");
           printf("
");
       }
       if(i>2)
       { for(int k=3;k>0;k--)
           {for(int j=0;j<k;j++)
            printf("* ");
           printf("
");}
       }
   }
    return 0;
}

Mấy anh chị cho em hỏi bài này có cách vào viết ngắn gọn chỉ dùng vòng lặp for kết hợp printf thôi không ? . Bài này em giả sử cho chiều cao tam giác = 3 nha . ( em chưa học qua hàm cantf ^^! )

Ngo Dinh Quyen viết 20:17 ngày 30/09/2018

Đề bài yêu cầu gì vậy bạn…
Đọc code của bạn không hiểu lắm…
Bạn đã chạy thử chưa…

kirakira viết 20:12 ngày 30/09/2018

Đề là vẽ hình tam giác cân ,( nhưng vì chưa học hàm nhập giá trị chiều cao của tam giác nên mik mặc định cho chiều cao = 3 ) . Code này hồi sáng nay mik mới viết xong rồi test thử ra đúng kết quả của đề bài . Mik đang thắc mắc là nếu chỉ dùng vòng lặp for và printf thì có thể làm bài này đc ko ?

Ngo Dinh Quyen viết 20:22 ngày 30/09/2018

Nếu bạn muốn vẽ tam giác theo hình dạng đó thì có thể chạy 2 vòng lặp riêng biệt
Giả sử chiều cao tam giác là 9 (số lẻ) thì vòng lặp 1 bạn chạy từ 1 - > 5 = 9/2 + 1, mỗi lần in ra số * tương ứng, vòng lặp 2 chạy từ 4 = 9 - 5 -> 1, mỗi lần cũng in ra số * tương ứng
Thường mọi người vẽ tam giác theo kiểu hàng một 1 *, hàng 2 có 2 *, hàng 3 có 3 *…

kirakira viết 20:21 ngày 30/09/2018

cái bài bên trên mik cug làm theo cách bạn đang nói đó .Cái tam giác chia làm đôi theo đường cao của nó , Ban đầu cho nó in ra cái tam giác bên trên xong mik phải lồng if vào để khi nó in xong cái tam giác bên trên rồi nó sẽ in cái tam giác ở dưới . Cách bn đang nói chỉ dùng hàm for va printf thôi hả ?

Ngo Dinh Quyen viết 20:10 ngày 30/09/2018

Nhưng mình dùng 2 vòng lặp riêng biệt, cách của bạn dùng 2 vòng lặp nhỏ lồng trong vòng lặp lớn…

kirakira viết 20:21 ngày 30/09/2018

bạn post code bài này theo cách của bạn cho mik xem với ! mik chưa hiểu ý bn là 2 vòng lặp riêng là như thế nào ?

Ngo Dinh Quyen viết 20:13 ngày 30/09/2018
for(int i = 1; i <= 5; i++)
   {
       for(int j = 1; j <= i; j++)
       {
           printf("*");
       }
       printf("\n");
   }
   
   for(int i = 4; i >= 1; i--)
   {
       for(int j = 1; j <= i; j++)
       {
           printf("*");
       }
       printf("\n");
   }
Ngo Dinh Quyen viết 20:08 ngày 30/09/2018

Sorry, khó nhìn quá…

nhatlonggunz viết 20:09 ngày 30/09/2018

Anh chịu khó đọc bài viết về Markdown được pinned trên diễn đàn nha anh

Làm sao để có thể hiển thị syntax highlighting bằng markdown? Các bạn phải đánh dấu ``` như ví dụ dưới đây Chú ý, dấu ``` được tạo ra bởi nút nằm bên trái số 1 trên bàn phím, nút này sẽ là ~ khi bấm giữ Shift Ví dụ cho C Nội dung: ``` void main() { } ``` Và đừng quên ``` ở cuối Kết quả void main() { } Ví dụ cho Pascal Nội dung: ``` Program HelloWorld; Begin WriteLn('Hello world!') {no ";" is required after the last statement of a block - adding one adds a "null stateme…
Bài liên quan
0