为何会进入死循环???

#include <stdio.h>

int main(void){
	const int covstm = 60,covsth = 3600;
	int h,m,s,s0 = 0;
	while(s0 > -1)
	{
		printf("请输入秒或者-1退出:\n");
		scanf("d%",&s0);
		s = s0;
		h = s/covsth;
		m = s%covsth/covstm;
		s = s%covsth%covstm;
		printf("您输入的是%8d秒:\n,转化为时分秒为:%8d小时,%8d分钟,%8d秒钟!\n",s0,h,m,s);
		
	}
return 0;

一直执行最后一个printf,结果还不对!

scanf("d%",&s0)
改为
scanf("%d",&s0);
格式符写错了

while循环中没有改变s0的值,s0一直等于0,所以s0>-1永远成立,就是死循环

好好查查你的代码,看是不是编译中有错误,提示你修改错误或执行上次的程序,你点了执行上次的程序
全部重新编译你的工程试试


#include <stdio.h>
int main(void){
    const int covstm = 60,covsth = 3600;
    int h,m,s,s0 = 0;
    printf("请输入秒或者-1退出:\n");
    while(scanf("%d",&s0) && s0 > -1)
    {
        s = s0;
        h = s/covsth;
        m = s%covsth/covstm;
        s = s%covsth%covstm;
        printf("您输入的是%8d秒:\n,转化为时分秒为:%8d小时,%8d分钟,%8d秒钟!\n",s0,h,m,s);
    }
return 0;
}

scanf("d%",&s0); 改成scanf("%d",&s0);
%位置错了

img


scanf里面参数写错了
改为scanf("%d", &s0);即可
有帮助望采纳

格式符号应该为%d