1、使用简单的printf语句直接输出房子
最简单的方法就是直接输出构成房子的ASCII字符。
#include <stdio.h>
int main() {
printf(" ^ \n");
printf(" / \\ \n");
printf(" / \\ \n");
printf("/_____\\\n");
printf("| |\n");
printf("|_____| \n");
return 0;
}
2、使用二维数组存储房子的形状并打印
将房子的一部分存储在字符数组中,然后输出整个数组。
#include <stdio.h>
int main() {
char house[6][10] = {
" ^ ",
" / \\ ",
" / \\ ",
"/_____\\",
"| |",
"|_____|"
};
for (int i = 0; i < 6; i++) {
printf("%s\n", house[i]);
}
return 0;
}
3、通过嵌套循环绘制房子
对于更复杂的图形,可以使用嵌套循环来控制输出的字符。
#include <stdio.h>
int main() {
// 绘制屋顶
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 6 - i; j++) {
printf(" ");
}
for (int k = 0; k < i * 2 + 1; k++) {
if (k == 0 || k == i * 2) {
printf("/");
} else if (i == 3) {
printf("_");
} else {
printf(" ");
}
}
printf("\\\n");
}
// 绘制房子主体
for (int i = 0; i < 2; i++) {
printf(" | |\n");
}
printf(" |_____|\n");
return 0;
}
4、使用函数模块化代码,分段绘制房子
将绘制房子的逻辑封装成函数,提高代码的可读性和复用性。
#include <stdio.h>
void drawRoof() {
printf(" ^ \n");
printf(" / \\ \n");
printf(" / \\ \n");
printf("/_____\\\n");
}
void drawBody() {
printf("| |\n");
printf("|_____|\n");
}
int main() {
drawRoof();
drawBody();
return 0;
}
5、结合转义字符绘制房子
通过输出ASCII字符和利用转义字符,在控制台上绘制一个简单的房子。
#include <stdio.h>
int main() {
printf(" %c \n", 94); // 94是^的ASCII码
printf(" %c %c \n", 47, 92); // 47是/,92是
printf(" %c %c \n", 47, 92); // 47是/,92是
printf(" %c %c \n", 47, 92);
printf("%c%c%c%c%c%c%c%c\n", 47, 95, 95, 95, 95, 95, 95, 92);
printf("%c %c\n", 124, 124); // 124是|
printf("%c%c%c%c%c%c%c%c\n", 124, 95, 95, 95, 95, 95, 95, 124);
return 0;
}