#include<stdio.h>
int main()
{
int x,a,b,mask=1,i;
printf("请输入一个数字:");
scanf("%d",&x);
x=a;
do{
x=x/10;
mask=mask*10;
} while(x>9);
for(i=mask;i>0;i/10){
b=a/i;
printf("%d",b);
}
return 0;
}
a没有初值,默认为0,在scanf输入x的值之后,没有初值的a又赋值给了x。这样x就默认为0了,mask为10。dowhile循环跳出。
此时的mask为10。i为mask,所以i为10。由于i/10这个式子并没有给i赋值,i的值一直都是10,所以for循环中表达式2永远为真,所以一直无限循环b的值,b的值为0/10=0,所以无限循环0了。
for里面i/=10
你这代码毛病不少哦。
x=a要改为a=x
for(i=mask;i>0;i/10)改为 for(i=mask;i>0;i=i/10)
for循环的内容也莫名奇妙啊,b=a/i是想干嘛啊?
for循环内应该是一个赋值语句,而不是一个表达式
用的是浮点型数据,float就是表示浮点型数据
在你的程序中,输入的值存到了x中,你又将a赋值给了x,那scanf语句就是无用的。