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("\n");
       }
       if(i>2)
       { for(int k=3;k>0;k--)
           {for(int j=0;j<k;j++)
            printf("* ");
           printf("\n");}
       }
   }
    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 ^^! )

Đề 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…

2 Likes

Đề 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 ?

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 *…

2 Likes

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ả ?

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…

2 Likes

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 ?

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");
   }
2 Likes

Sorry, khó nhìn quá…

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

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?