Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Break语句不是';t在C编程语言中正常工作_C_Break - Fatal编程技术网

Break语句不是';t在C编程语言中正常工作

Break语句不是';t在C编程语言中正常工作,c,break,C,Break,我正在试着做一个简单的秒表,但是break语句不能正常工作。当我第一次做的时候,效果很好,但是当我再次尝试做的时候,break语句就不起作用了。它永远在运行 #include<stdio.h> #include<stdio.h> #include <unistd.h> #define clrscr() printf("\e[1;1H\e[2J") #define CYCLE 60 int main() { int hour, minute,

我正在试着做一个简单的秒表,但是break语句不能正常工作。当我第一次做的时候,效果很好,但是当我再次尝试做的时候,break语句就不起作用了。它永远在运行

#include<stdio.h>
#include<stdio.h>
#include <unistd.h>
#define clrscr() printf("\e[1;1H\e[2J")
#define CYCLE 60
int main()
{
int hour, minute, second;
printf("Enter the value of hour, minute and second: ");
scanf("%d%d%d", &hour, &minute, &second);
int h, m, s;
h = 0;
m = 0;
s = 0;
while(1){
    printf("\t\t\t###### Stop Watch ######\n\n\n");
    printf("\t\t\t        %.2d:%.2d:%.2d\n", h, m, s);
    printf("\t\t\t###### Stop Watch ######\n\n\n");
    if (h == hour && m == minute && s == second){
        break;
    }else{
        clrscr();
    }
    s++;
    sleep(1);
    if (s == CYCLE){
        m++;
        s = 0;
    }
    if (m == CYCLE){
        h++;
        m = 0;
    }
}
return 0;
}
#包括
#包括
#包括
#定义clrsc()printf(“\e[1;1H\e[2J”)
#定义第60周期
int main()
{
整小时,分,秒;
printf(“输入小时、分钟和秒的值:”);
scanf(“%d%d%d”、&小时、分钟和秒);
int h,m,s;
h=0;
m=0;
s=0;
而(1){
printf(“\t\t\t\t\n\n\n\n”;
printf(“\t\t\t%.2d:%.2d:%.2d:%.2d\n”,h,m,s);
printf(“\t\t\t\t\n\n\n\n”;
如果(h==小时和m==分钟和s==秒){
打破
}否则{
clrsc();
}
s++;
睡眠(1);
如果(s==周期){
m++;
s=0;
}
如果(m==周期){
h++;
m=0;
}
}
返回0;
}

没有任何时间相关功能的“秒表”? 好吧,条条大路通罗马

改变你的状况

(h == hour && m == minute && s == second)

其中,
current_time
是一个计数器,持续增加1,
stop_time
用户指定的时间(以秒为单位)

但是,最好使用以下函数:

  • 时间
  • 阿斯克泰姆
  • 时间
  • 本地时间
  • mktime

  • 睡眠

错误使用scanf比break语句失败更可能是导致任何问题的原因。请显示一个没有scanf的语句或其他说明问题的漏洞。例如,对当前从输入读取的内容使用硬编码的init值。除了@Yunnosch的建议外,我建议还输出
hour
minute
second
用于调试原因,或使用调试器逐步完成示例。欢迎使用。您忘了向我们显示您提供的输入和输出。还有什么“工作不正常”意思是说?它会永远运行吗?它会不会太晚才中断?请编辑您的问题以添加缺少的细节。通常,您应该始终检查
scanf
@BasileStarynkevitch的返回值:我认为建议初学者阅读ISO C标准来学习C是没有帮助的。
(current_time >= stop_time)