寻求高手替我解答一个c语言的问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 02:36:14
给一个不多于5位正整数,要求:
1.求出它是几位数;
2.分别输出每一位数字;
3.按逆序输出各位数字,列如原数为321,应输出123.
我认为这个答案不是很对 有没有高手在帮帮我

#include <stdio.h>
void main()
{
int i,s1,s2,s3,s4,y1,y2,y3,y4;
printf("请输入一个不多于5位的正整数:");
scanf("%d",&i);
s1=i/10000; //第五位数
y1=i%10000;
s2=y1/1000; //第四位数
y2=y1%1000;
s3=y2/100; //第三位数
y3=y2%100;
s4=y3/10; //第二位数
y4=y3%10; //第一位数
if(s1==0)
if(s2==0)
if(s3==0)
if(s4==0)
printf("i是一位数.\ni=%d\n",y4);
else
{
printf("i是两位数.\n每位数分别是:%d,%d\n",s4,y4);
printf("i的逆序为:%d%d\n",y4,s4);
}
else
{
printf("i是三位数.\n每位数分别是:%d,%d,%d\n",s3,s4,y4);
printf("i的逆序为:%d%d%d\n",y4,s4,s3);
}
else
{
printf("i是四位数.\n每位数分别是:%d,%d,%d,%d\n",s2,s3,s4,y4);
printf("i的逆序为:%d%d%d%d\n",y4,s4,s3,s2);
}
else
{
pri