1、怎么判断我们输入的数字有多大
我们可以在0-100000的范围内随便输入一个数字,那我们怎么判断它是几位数呢。
可以用我们的C语言中的选择结构
if()
else if()
else if()
…
else
来判断。假设我们输入数字n,用它与10000比较,即n>9999。如果为真,则它为5位数;如果为假,继续往下走,判断n>999是否为真,为真就是4位数,为假继续往下判断。一直判断,知道找到它是几位数为止。
代码段如下:
scanf("%d",&n); //输入要倒序输出的数字
if(n>=100000||n<0) //判断是否位于0-100000里面,不在,则重新输入
{
printf("please input");
scanf("%d",&n);
}
//判断该数是几位数
if(n>9999)
{
place=5;
}
else if(n>999)
{
place=4;
}
else if(n>99)
{
place=3;
}
else if(n>9)
{
place=2;
}
else
place=1;
2、提取各个位上的数字
假设该数为5位数,可以用该数除以10000,就可以得到万位上的数字,保存到t中,要是它不是5位数,t里面的数字就是0.
接着用该数减去万位上的数字,再去除以1000,就可以得到千位上的数字。
依次往下除,直到获得个位上的数字。
t=n/10000; //获得万位上的数字
h=(n-t*10000)/1000; //获得千位上的数字
j=(n-t*10000-h*1000)/100; //获得百位上的数字
k=(n-t*10000-h*1000-j*100)/10; //获得十位上的数字
l=(n-t*10000-h*1000-j*100-k*10)/1; //获得个位上的数字
3、倒序输出
可以采用多分支选择结构,来输入5位数字、4位数字、3位数字、2位数字、1位数字。可以先正向输出,在反向输出,来判断我们是否成功倒序输出。
switch(place)
{
case 5:printf("%d,%d,%d,%d,%d\n",t,h,j,k,l); //5位数正序输出
printf("%d,%d,%d,%d,%d",l,k,j,h,t); //倒序输出
break;
case 4:printf("%d,%d,%d,%d\n",h,j,k,l); //4位数正序输出
printf("%d,%d,%d,%d",l,k,j,h); //倒序输出
break;
case 3:printf("%d,%d,%d\n",j,k,l); //3位数正序输出
printf("%d,%d,%d",l,k,j); //倒序输出
break;
case 2:printf("%d,%d\n",k,l); //2位数正序输出
printf("%d,%d",l,k);//倒序输出
break;
case 1:printf("d\n",l); /1位数正序输出
printf("d",l); //倒序输出
}
完整代码如下
#include<stdio.h>
int main()
{
int n;
int place;
int t,h,j,k,l;
scanf("%d",&n);
if(n>=100000||n<0)
{
printf("please input");
scanf("%d",&n);
}
if(n>9999)
{
place=5;
}
else if(n>999)
{
place=4;
}
else if(n>99)
{
place=3;
}
else if(n>9)
{
place=2;
}
else
place=1;
printf("number %d\n",place);
t=n/10000;
h=(n-t*10000)/1000;
j=(n-t*10000-h*1000)/100;
k=(n-t*10000-h*1000-j*100)/10;
l=(n-t*10000-h*1000-j*100-k*10)/1;
switch(place)
{
case 5:printf("%d,%d,%d,%d,%d\n",t,h,j,k,l);
printf("%d,%d,%d,%d,%d",l,k,j,h,t);
break;
case 4:printf("%d,%d,%d,%d\n",h,j,k,l);
printf("%d,%d,%d,%d",l,k,j,h);
break;
case 3:printf("%d,%d,%d\n",j,k,l);
printf("%d,%d,%d",l,k,j);
break;
case 2:printf("%d,%d\n",k,l);
printf("%d,%d",l,k);
break;
case 1:printf("d\n",l);
printf("d",l);
}
return 0;
}