题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
#include<stdio.h>
int main()
{printf("输入不多于5位的正整数");
int a,b,c,d,e,w;
scanf("%d",&w);
a=w%10;
b=w/10%10;
c=w/100%10;
d=w/1000%10;
e=w/10000%10;
if(0<w&&w<10)
{printf("1位数 每位数;%d 逆序;%d",&a,&a);
}
else if(10<=w&&w<100)
{printf("2位数 每位数;%d%d 逆序;%d%d",&b,&a,&a,&b);
}
else if(100<=w&&w<1000)
{printf("3位数 每位数;%d%d%d 逆序;%d%d%d",&c,&b,&a,&a,&b,&c);
}
else if(1000<=w&&w<10000)
{printf("4位数 每位数;%d%d%d%d 逆序;%d%d%d%d",&d,&c,&b,&a,&a,&b,&c,&d);
}
else if(10000<w&&w<100000)
{printf("5位数 每位数;%d%d%d%d%d 逆序;%d%d%d%d%d",&e,&d,&c,&b,&a,&a,&b,&c,&d,&e);
}
return 0;
}
问题可能有点大,谢谢各位哥
程序问题错的不大,主要是所有的输出错了,输出不能用地址的
也就是所有的printf中的&多是多余的,删除它们就可以了
另外,这个用循环要简单的多(且可以超过5位数)
热门标签: