求助,关于c语言

来源:百度知道 编辑:UC知道 时间:2024/06/04 07:34:52
本人菜鸟级新手
请各位大哥帮忙看下这道题错在哪里:
题目:输入一个不多于5位的正整数
要求:1.求出他是几位数。
2.分别输出每一位数字。
3.按逆序输出各位数字。例如原数为321.应输出123.
我的答案:
#include<stdio.h>
void main()
{
int n;
long i;
void print(long i,int n);
int count(long i);
printf("please input a number:\nthe size is between 0~99999\n");
scanf("%ld",&i);
n=count(i);
printf("the result is:%d\n",n);
print(i,n);
}
int count(long i)
{
int n;
if(i>=10000)
n=5;
else if(i>=1000)
n=4;
else if(i>=100)
n=3;
else if(i>=10)
n=2;
else n=1;
return(n);
}
void print(long i,int n)
{
int a,b,c,d,e;
if(n=1)
{
a=i;
}
else if(n=2)
{
b=i%10;
a=(i-b)/10;
}
else if(n=3)
{
c=i%10;
b=(i%100-c)/10;
a=(i-b*10-c)/100

修改之后在tc2.0中完美运行:

#include<stdio.h>
main()
{
int n;
long i;
void print(long i,int n);
int count(long i);
printf("please input a number:\nthe size is between 0~99999\n");
scanf("%ld",&i);
n=count(i);
printf("the result is:%d\n",n);
print(i,n);

}
int count(long i)
{
int n;
if(i>=10000)
n=5;
else if(i>=1000)
n=4;
else if(i>=100)
n=3;
else if(i>=10)
n=2;
else n=1;
return(n);
}
void print(long i,int n)
{
int a,b,c,d,e;
if(n==1)
{a=i;
}
else if(n==2)
{
a=i%10;
b=i/10;
b=a%10;
}
else if(n==3)
{
a=i%10;
b=(i/10)%10;
c=(i/100)%10;
}
else if(n==4)
{
a=i%10;
b=(i/10)%10;
c=(i/100)%10;
d=i/1000;
}
else if(n==5)
{
a=i%10;
b=(i/10)%10;
c=(i/100)%1