Làm sao để vẽ hình cho đơn giản hơn khi gặp 1 hình phức tạp thực sự?

Bên dưới là code và kq có cách nào để code trông đơn giản ko ạ?

#include<stdio.h>
int main(){
	char a[6][11];
	for(int i=0;i<6;i++){
		for(int j=0;j<11;j++){
			int n=i*2-1;
			if(n>0&&n<8){
				if(j<11-((11-n)/2)&&j>11-((11-n)/2)-n-1)
				printf(" ");
				else
				printf("*");
			}
			else printf("*");
		}
		printf("\n");
	}
}

Untitled

Bạn thử đọc bài viết này xem :grin:

3 Likes

cái này dead rồi bác

Đây là ví dụ sau khi clean up code của cậu:

#include<stdio.h>

#define WEIGHT 11
#define HEIGHT 6

int main() {
  int i, j;

  for (i=0; i<HEIGHT; i++) {
    for (j=0; j<WEIGHT; j++) {
      if(i <= 0 || i >= HEIGHT - 1) {
        printf("*");
        continue;
      }

      // cậu có thể bỏ biến trung gian n đi, và viết lại điều kiện thành thế này
      if(2j - 2i < WEIGHT + 1 && 2j + 2i > WEIGHT - 3) {
        printf(" ");
        continue;
      }

      printf("*");
    }
    printf("\n");
  }
}
5 Likes

Bên trong for i làm 3 for. Với lại ko cần rút j theo n :smiley:

4 Likes

Ủa sao lại dead vậy bạn, bài viết còn nguyên nội dung mà :thinking:

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