自己收藏的两个代码,真的是太闲了,觉得很有趣故拿出来分享
圣诞树:
#include <stdio.h>
int main(void)
{
int i, j, x;
int n = 0;
// a是间隔填充物,这里用空白填充;b是雪花,这里用*表示;c是圣诞树的填充,用'0'表示
char a = ' ', b = '*', c = '0';
// 第一部分,输出树叶
for (x = 0; x < 3; x++) {
// 想让圣诞树变高可以将4这个值调高
for (i = 0; i < x + 4; i++) {
for (j = 0; j < 80; j++) {
if ((j <= 25 + n) && (j >= 25 - n)) {
printf("%c", c);
} else if ((j % (n + 6) == n) && ( (j > 25 + n) || (j < 25 - n))) {
printf("%c", b);
} else {
printf("%c", a);
}
}
printf("\n");
n = n + 2;
}
n = n - 2 * (x + 2);
}
// 第二部分,输出树干,高度为5
for (i = 0; i < 5; i++) {
for (j = 0; j < 80; j++) {
if (j >= 22 && j <= 28) {
printf("%c", c);
} else if ((j % (n + 6) == n) && ((j > 25 + n) || (j < 25 - n))) {
printf("%c", b);
} else {
printf("%c", a);
}
}
n = n + 2;
printf("\n");
}
// 第三部分,输出地面,高度为3
for (i = 0; i < 3; i++) {
for (j = 0; j < 80; j++) {
if (j % 2 == 0) {
printf("%c", b);
} else {
printf("%c", a);
}
}
printf("\n");
}
return 0;
}
效果图:
爱心
#include<stdio.h>
int main(void)
{
int i, j, k, l, m;
char c = 3; // 黑色爱心符号
for (i = 1; i <= 5; i++) {
printf("\n");
}
// 同圣诞树一样,爱心也可以拆成三部分输出
// 第一部分是心冠部分两座小山堆
for (i = 1; i < 4; i++) {
for (j = 1; j < 27 - i * 2; j++) {
printf(" ");
}
for (k = 1; k <= i * 4 + 1; k++) {
printf("%c", c);
}
for (l = 1; l <= 9 - 4 * (i - 1); l++) {
printf(" ");
}
for (m = 1; m <= i * 4 + 1; m++) {
printf("%c", c);
}
printf("\n");
}
// 第二部分是平平无奇的整行输出,撑起中间区域的长度
for (i = 1; i < 4; i++) {
for (j = 1; j < 20; j++) {
printf(" ");
}
for (k = 1; k <= 29; k++) {
printf("%c", c);
}
printf("\n");
}
// 最后部分是个倒三角
for (i = 1; i < 8; i++) {
for (j = 1; j < 20 + 2 * i; j++) {
printf(" ");
}
for (k = 1; k <= 29 - 4 * i; k++) {
printf("%c", c);
}
printf("\n");
}
return 0;
}
效果图