scanf printf位置问题;输入任意个整数,某数时停止循环

来源:百度知道 编辑:UC知道 时间:2024/06/12 21:44:22
输入分钟转换成 小时 分钟的格式
我的程序是这样的:
#include<stdio.h>
#define T 60
int main()
{
int t,h,m;

scanf("%d",&t);
while(t>0)
{
h=t/T;
m=t%T;
printf("%dxiaoshi%dfen\n",h,m);
scanf("%d",&t);

}
}
开始的时候我先scanf后printf但是报错:
scanf("%d",&t);
printf("%dxiaoshi%dfen\n",h,m);

为什么呢?不是一般都是先scanf后printf的吗?

还有就是输入任意个整数,0时停止循环怎么编呢?
谢谢了~!
hanwt139 ,不行的,如果小于0的时候不应该有输出的。

如果你while循环里scanf在前。
第一次循环的时候实际上就是连着2个scanf(循环外部还有一个scanf)
改成:
int main()
{
int t=1,h,m;

//scanf("%d",&t);
while(t>0)
{
scanf("%d",&t);
h=t/T;
m=t%T;
printf("%dxiaoshi%dfen\n",h,m);
}
}
就可以了
注意这时候int t=1;否则循环无法开始。

你的第二个问题:
其实很简单
#include<stdio.h>

void main()
{
while(1)
{
int t;
scanf("%d",&t);
if(t==0)
break;
}
}
输入的时候,输一个数回车一下;
输入0的时候程序就跳出了,这是最简单的。
你可以把t换成一个数组来保存输入的数字。

你程序没错吧……我都运行出来了