You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新手求教:如何实现带随机数字的垂直锯齿形C语言图案?

实现垂直锯齿形随机数字动画

核心需求拆解

  • 生成13-25区间的随机数字
  • 用随机数字组成垂直锯齿形图案
  • 保留usleep实现动画延迟效果

原代码问题分析

原代码仅实现了单条斜线打印和独立的随机数输出,未处理锯齿形的位置逻辑,也没有将随机数与图案结合并实现动画效果。

解决方案代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>

int main() {
    srand(time(NULL)); // 初始化随机数种子,确保每次运行随机数不同
    const int numRows = 6;    // 图案行数
    const int numCols = 21;   // 图案列数(单字符宽度)
    const int maxCol = 5;     // 锯齿最大偏移列数,可调整
    
    // 无限循环实现动画效果
    while (1) {
        // 清屏(ANSI转义序列,兼容多数终端)
        printf("\033[H\033[J");
        
        int currentCol = 0;
        int direction = 1; // 1=列数递增,-1=列数递减
        
        for (int row = 0; row < numRows; ++row) {
            for (int col = 0; col < numCols; ++col) {
                // 在当前列位置打印随机数,其余位置打空格
                if (col == currentCol) {
                    // 生成13-25的随机数
                    int num = (rand() % (25 - 13 + 1)) + 13;
                    printf("%d", num);
                    // 跳过下一列,因为数字是两位占两个字符
                    col++;
                } else {
                    printf(" ");
                }
            }
            printf("\n");
            
            // 更新下一行的列位置,形成锯齿
            currentCol += direction;
            if (currentCol < 0 || currentCol > maxCol) {
                direction *= -1; // 到达边界反转方向
                currentCol += direction; // 回退一步避免越界
            }
        }
        
        usleep(300000); // 延迟0.3秒,可根据需求调整速度
    }
    
    return 0;
}

关键逻辑说明

  1. 锯齿位置控制:通过currentCol记录每行数字的列位置,direction控制位置增减方向,到达边界后反转方向,形成锯齿形路径。
  2. 随机数生成:沿用原代码的公式(rand() % (25-13+1)) +13,确保数字在13-25区间。
  3. 动画实现:用\033[H\033[J清屏,配合usleep实现逐帧刷新的动画效果,避免画面残留。
  4. 字符对齐:因为数字是两位,打印后手动跳过一个列索引,保证图案对齐。

调整建议

  • 修改maxCol可以改变锯齿的最大偏移幅度,数值越大锯齿越宽。
  • 调整usleep的参数(单位微秒)可以控制动画速度,数值越小速度越快。
  • 如果终端不支持ANSI清屏序列,可替换为system("clear")(Linux/macOS)或system("cls")(Windows)。

内容的提问来源于stack exchange,提问作者mick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 08:52:53