PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

C语言中的圣诞树程序

WBOY
WBOY 转载
2023-09-13 09:05:01 782浏览

在这里,我们将看到一个有趣的问题。在这个问题中,我们将看到如何随机打印圣诞树。因此,树会像圣诞树灯一样闪烁。

为了打印圣诞树,我们将打印各种大小的金字塔,一个接一个地放置。对于装饰叶子,将从给定的字符列表中随机打印一个字符。高度和随机性是可调节的。

在生成树之后,整个屏幕被清除,然后再次生成,这就是为什么它看起来像是闪烁的树。

示例

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#define REFRESH_RATE 40000
#define RANDOM_NESS 5 // The higer value indicates less random
void clear_screen() {
   system("@cls||clear");
}
void display_random_leaf() {
   char type_of_leaves[5] = { '.', '*', '+', 'o', 'O' }; //these are the leaf types
   int temp = rand() % RANDOM_NESS;
   if (temp == 1)
      printf("%c ", type_of_leaves[rand() % 5]); //if temp is 1, then use other leaves
   else
      printf("%c ", type_of_leaves[1]); //otherwise print *
}
void tree_triangle(int f, int n, int toth) {
   int i, j, k = 2 * toth - 2;
   for (i = 0; i < f - 1; i++)
      k--;
   for (i = f - 1; i < n; i++) { //i will point the number of rows
      for (j = 0; j < k; j++) // Used to put spaces
      printf(" ");
         k = k - 1;
      for (j = 0; j <= i; j++)
         display_random_leaf();
      printf("

"); } } void display_tree(int h) { int start = 1, end = 0, diff = 3; while (end < h + 1) { end = start + diff; tree_triangle(start, end, h); diff++; start = end - 2; } } void display_log(int n) { //print the log of the tree int i, j, k = 2 * n - 4; for (i = 1; i <= 6; i++) { for (j = 0; j < k; j++) printf(" "); for (j = 1; j <= 6; j++) printf("//m.sbmmt.com/m/faq/#"); printf("

"); } } main() { srand(time(NULL)); int ht = 15; while (1) { clear_screen(); display_tree(ht); display_log(ht); usleep(REFRESH_RATE); //use sleep before replacing } }

输出

C语言中的圣诞树程序

以上就是C语言中的圣诞树程序的详细内容,更多请关注php中文网其它相关文章!

声明:本文转载于:tutorialspoint,如有侵犯,请联系admin@php.cn删除