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; }