给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字.应准备以下测试数据:要处理的数为1位正整数;要处理的数为2位正整数;要处理
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/08 16:59:16
给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字.应准备以下测试数据:要处理的数为1位正整数;要处理的数为2位正整数;要处理
给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字.
应准备以下测试数据:
要处理的数为1位正整数;
要处理的数为2位正整数;
要处理的数为3位正整数;
要处理的数为4位正整数;
要处理的数为5位正整数.
除此之外,程序还应当对不合法的输入作必要的处理.例如:
输入负数;
输入的数超过5位(如123 456).
给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字.应准备以下测试数据:要处理的数为1位正整数;要处理的数为2位正整数;要处理
#include
void main()
{
int a,b,c,d,e;
unsigned int i;//定义i位无符号的整型变量
printf("please enter the number:\n");
scanf("%u",&i);
int m;
a=i/10000;
b=(i-a*10000)/1000;//求万位数
c=(i-a*10000-b*1000)/100;//求千位数
d=(i-a*10000-b*1000-c*100)/10;//求十位数
e=(i-a*10000-b*1000-c*100)%10;//求个位数
if(a!=0)
{
m=5;//5位正整数
printf("%u是%d位数\n",i,m);
printf("每一位数字分别是:%d,%d,%d,%d,%d\n",a,b,c,d,e);
printf("逆序输出各位数字:%d%d%d%d%d\n",e,d,c,b,a);
}
if(a==0&&b!=0)
{
m=4;//4位正整数
printf("%u是%d位数\n",i,m);
printf("每一位数字分别是:%d,%d,%d,%d\n",b,c,d,e);
printf("逆序输出各位数字:%d%d%d%d\n",e,d,c,b);
}
if(a==0&&b==0&&c!=0)
{
m=3;//3位正整数
printf("%u是%d位数\n",i,m);
printf("每一位数字分别是:%d,%d,%d\n",c,d,e);
printf("逆序输出各位数字:%d%d%d\n",e,d,c);
}
if(a==0&&b==0&&c==0&&d!=0)
{
m=2;//2位正整数
printf("%u是%d位数\n",i,m);
printf("每一位数字分别是:%d,%d\n",d,e);
printf("逆序输出各位数字:%d%d\n",e,d);
}
if(a==0&&b==0&&c==0&&d==0)
{
m=1;1位正整数
printf("%u是%d位数\n",i,m);
printf("每一位数字分别是:%d\n",e);
printf("逆序输出各位数字:%d\n",e);
}
else printf("error data\n");//不合法处理
}
最笨 最原始的方法