c语言输入一个不多于5位正整数要求:求出它是几位数;分别打印出每一位数字;按逆序输出各位数字。

请问这个程序错在哪里
#include <stdio.h>
int main(void)

{
long int x;
int y,i=1;
printf("请输入一个不超过100000的整数:",x);
scanf("%ld",&x);
if(x>99999||x<1) printf("你所输入的数据超出计算范围\n");
else
{
do
while(x!=0)
{
y=x%10;
printf("%d\t",y);
x=x/10;
i=i+1;
}

printf("\n这个数共有%d位\n",i);
return 0;
}

#include <stdio.h>
int main(void)

{
long int x;
int y,i=1;
printf("请输入一个不超过100000的整数:"); // <------请把,x去掉
scanf("%ld",&x);
if (x>99999||x<1) printf("你所输入的数据超出计算范围\n");
else
{
while (x!=0) // <------请把 do 去掉
{
y=x%10;
printf("%d\t",y);
x=x/10;
i=i+1;
}

printf("\n这个数共有%d位\n",i);
}
return 0; // <------这里return 0;放最外层计较好
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-17
#include<stdio.h>
int main()
{
int n,num=0,i,a[5],m;
scanf("%d",&n);
for(i=0;i<=4;i++)
{
if(n!=0)
{
m=n%10;
a[i]=m;
n=n/10;
num++;
} //上面这一块为了将数据存起来,后面好拿出来用
else
break;
}
printf("%d\n",num);
for(i=num-1;i>=0;i--)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<num;i++)
printf("%d ",a[i]);

return 0;
}
望采纳
第2个回答  2012-07-19
#include<stdio.h>
int main()
{
int a,i,z,n1;
int n=0;
scanf("%d",&a);
if((a>=0)&&(a<=100000))
{ int b=a;
while(a)
{
a=a/10;
n+=1;
}
printf("%d\n",n);

for(i=1;i<=n;i++)
{
z=b%10;
b=b/10;
printf("%d ",z);

}

}
绝对正确
第3个回答  2009-03-30
#include<iostream.h>
#include<cstdlib>
void main()
{
int a;
cin>>a;
int b=a/10000;
int c=(a%10000)/1000;
int d=(a%1000)/100;
int f=(a%100)/10;
int e=(a%10);
cout<<e<<f<<d<<c<<b<<endl;
system("pause");

}
第4个回答  2009-03-28
do
while(x!=0)
{
y=x%10;
printf("%d\t",y);
x=x/10;
i=i+1;
}
while放后面
do

{
y=x%10;
printf("%d\t",y);
x=x/10;
i=i+1;
} while(x!=0);
相似回答