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

Windows系统下C语言sleep函数能否设置0-1之间的延时?

Windows下实现0.5秒延时的解决方案

在Windows系统中,你可以直接使用系统API提供的Sleep()函数(注意首字母大写)来实现精确到毫秒的延时,它的参数是毫秒数,所以调用Sleep(500)就能达到0.5秒的延时效果。

修正后的完整代码

原代码存在几处语法和逻辑问题,同时结合延时需求,修正后的代码如下:

#include <stdio.h>
#include <stdbool.h>
#include <windows.h> // 必须包含该头文件才能使用Sleep()

int main()
{
    char ch='*';
    int i=0;
    bool flag=true;
    while(i >= 0 && i <= 10) // 修正原循环条件的语法错误
    {
        if(flag)
        {
            ++i;
            for(int j=0;j<i;j++) // 打印递增图案
            {
                printf("%c",ch);
            }
            printf("\n");
            if(i==10)
            {
                Sleep(500); // 0.5秒延时
                flag=!flag;
            }
        }
        else
        {
            --i;
            for(int j=0;j<i;j++) // 修正原递减图案的循环逻辑,避免多打印字符
            {
                printf("%c",ch);
            }
            if(i > 0) printf("\n"); // 避免i=0时打印空行
            if(i==0)
            {
                Sleep(500); // 0.5秒延时
                flag=!flag;
            } 
        }
        Sleep(500); // 每打印一行后添加0.5秒延时,控制整体打印速度
    }
    return 0;
}

关键说明

  • Sleep()是Windows专属的API函数,参数为毫秒数,Sleep(500)对应0.5秒的等待时间,必须包含<windows.h>头文件才能使用
  • 原代码中的while(0<i<10)不符合C语言语法,C中不能连续进行比较操作,需改为while(i >= 0 && i <= 10)来正确控制循环范围
  • 原递减图案的循环逻辑会多打印一个*,修正后与递增图案的循环逻辑保持统一,保证图案显示正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 14:07:11