知识点:1、逆序输出,可以用s来接收n%10(个位数)的值,(例如:123%10=3(3为个位数)),再让n/10,继续%10,得到十位数,依次下去,通过for循环可得到想要的数值。
2、顺序输出,需要使用数组,原理如逆序输出的方法一样,但需要用数组来接收个、十、百、甚至千的数值,再利用下标法,输出原来存储的数值,即可达到顺序输出的效果。
分析:1、这个数可以是5、4、3、2、1位,判别它们是几位的方法:n(正整数)/10000>0,则为五位数,依次推断
代码:判断个数(注意:下面条件不是并列关系,,而是对立关系)
if(n/10000>0)
y=5;
else if(n/1000>0)
y=4;
else if(n/100>0)
y=3;
else if(n/10>0)
y=2;
else
y=1;
2、接收输入的数,并顺序输出
先来看一下逆序输出的方法:
for(i=1;i<=y;i++)//y决定循环几次
{
s=n%10;
n/=10;
printf("%d",s);
}
顺序输出需要用到数组:先用数组接收值:
for(i=0;i<y;i++)//y决定循环次数
{
a[i]=n%10;
n/=10;
}
再顺序输出:
for(i=y-1;i>=0;i--)
{
printf("%d",a[i]);
}
注意:数组从0开始,循环此数为y,但循环结束为y-1
组合,整体代码如下:
#include<stdio.h>
void main()
{
int i,y,n,a[20];
printf("请输入n的值:");
scanf("%d",&n);
if(n/10000>0)
y=5;
else if(n/1000>0)
y=4;
else if(n/100>0)
y=3;
else if(n/10>0)
y=2;
else
y=1;
printf("%d\n",y);
for(i=0;i<y;i++)
{
a[i]=n%10;
n/=10;
}
for(i=y-1;i>=0;i++)
{
printf("%d ",a[i]);
}
}