欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

圣诞节没什么礼物,来个爱心和彩色圣诞树代码(彩色圣诞树可以写喜欢的人名字哦)

发布时间:2024/3/12 编程问答 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 圣诞节没什么礼物,来个爱心和彩色圣诞树代码(彩色圣诞树可以写喜欢的人名字哦) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

通过整编,都可以直接在C语言的软件运行,不同的源文件会有()注释。 

简单圣诞树(.c)

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

更加好看的圣诞树 (.c)

#include <math.h> #include <stdio.h> #include <stdlib.h> #define PI 3.14159265359 float sx, sy; float sdCircle(float px, float py, float r) {float dx = px - sx, dy = py - sy;return sqrtf(dx * dx + dy * dy) - r; }float opUnion(float d1, float d2) {return d1 < d2 ? d1 : d2; }#define T px + scale * r* cosf(theta), py + scale * r * sin(theta) int ribbon() {float x = (fmodf(sy, 0.1f) / 0.1f - 0.5f) * 0.5f;return sx >= x - 0.05f && sx <= x + 0.05f; }float f(float px, float py, float theta, float scale, int n) {float d = 0.0f;for (float r = 0.0f; r < 0.8f; r += 0.02f)d = opUnion(d, sdCircle(T, 0.05f * scale * (0.95f - r)));if (n > 0)for (int t = -1; t <= 1; t += 2) {float tt = theta + t * 1.8f;float ss = scale * 0.9f;for (float r = 0.2f; r < 0.8f; r += 0.1f) {d = opUnion(d, f(T, tt, ss * 0.5f, n - 1));ss *= 0.8f;}}return d; }int main(int argc, char* argv[]) {int n = argc > 1 ? atoi(argv[1]) : 3;float zoom = argc > 2 ? atof(argv[2]) : 1.0f;for (sy = 0.8f; sy > 0.0f; sy -= 0.02f / zoom, putchar('\n'))for (sx = -0.35f; sx < 0.35f; sx += 0.01f / zoom) {if (f(0, 0, PI * 0.5f, 1.0f, n) < 0.0f) {if (sy < 0.1f)putchar('.');else {if (ribbon())putchar('=');elseputchar("...................................#j&o"[rand() % 32]);}}elseputchar(' ');} }

运行结果 

 

彩色圣诞树 (.cpp)

#include <iostream> #include <windows.h> #include <conio.h> using namespace std;int len; struct Dot {int x;int y;char c; }a[10000000]; int vis[10000000]; char c[5] = { 35, 36, 37, 38, 79 }; string s = "/\\"; int n; string me = "Merry Christmas ^_^ !";//可以自己改名字 string fm = "From Yukisong";//可以自己改名字void getcur(short int x, short int y)//移动光标函数 {COORD pos = COORD{ x,y };//定义一个屏幕上的座标 HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(handle, pos);; }void goprint(int x, int y, char c) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), rand() % 16);getcur(x, y); printf("%c", c); //getcur(0,row);//消除光标影响 }void del(int x, int y) {getcur(x, y); printf(" "); }int main() {cout << "请输入你喜欢的一个数字(10 - 17),并将窗口最大化:";cin >> n;cout << endl;int Layer = 2 * n - 1;int Space = 2 * n - 2;for (int i = 1; i <= Layer; ++i) {if (i & 1) {for (int j = 0; j < 2 * i; j += 2) {a[len].x = j + Space + 30, a[len].y = i + 5, a[len++].c = c[rand() % 5];}Space -= 2;}else {int r = 0;for (int j = 0; j < 2 * i; j += 2) {a[len].x = j + Space + 31, a[len].y = i + 5, a[len++].c = s[r];r = (r + 1) % 2;}}}for (int i = 0; i < Layer / 3 + 1; ++i) {a[len].x = Layer + 29, a[len].y = i + 6 + Layer, a[len++].c = '|';a[len].x = Layer + 30, a[len].y = i + 6 + Layer, a[len++].c = '|';}for (int i = 0; i < me.length(); ++i) {a[len].x = Layer - 1 + i + 30;a[len].y = Layer / 3 + 10 + Layer;a[len++].c = me[i];}for (int i = 0; i < fm.length(); ++i) {a[len].x = Layer - 1 + i + 30;a[len].y = Layer / 3 + 11 + Layer;a[len++].c = fm[i];}while (1) {int i = rand() % len;if ((a[i].c == '\\' || a[i].c == '/') && vis[i]) {continue;}goprint(a[i].x, a[i].y, a[i].c);vis[i] = 1;} }

 

爱心 (.c)

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

运行结果 

 

总结

以上是生活随笔为你收集整理的圣诞节没什么礼物,来个爱心和彩色圣诞树代码(彩色圣诞树可以写喜欢的人名字哦)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。