沈阳发票抽奖网址:c语言编程

来源:百度文库 编辑:中科新闻网 时间:2024/04/26 03:41:50
给一个不大于5位的正整数,要求
1求出它是几位数
2分别输出每一位数字
3按逆序输出各位数字,例如原数321,应输123

#include <stdio.h>

void main()
{
int i=c=k=0;
printf("Please input a number:\n");
scanf("%d",&c);
if(c>0&&c<100000);
{i=c/10;

if(i<10000)
k=5;
else if(i<1000)
k=4;
else if (i<100)
k=3;
else if(i<10)
k=2;
else
k=1;
}
i=(c%10)*10000+((c%100)/10)*1000+((c%1000)/1000)*100+((c/1000)%1000)*10+(c/10000)
printf("Digital is : %d \n",k);
printf(" %d \n",i);
}

#include <stdio.h>

void main()
{
int i=0,c=0,k=10000;
printf("Please input a number:\n");
scanf("%d",&c);
if(c>99999)return;
for(i=0;;i++)
{
if((i/k)>1)return;
k/=10
}
printf("Digital is : %d \n",i);
while(i>0)
{
printf("%d\t",i%10);
i=(i-i%10)/10;
}
return;
}

最笨的方法就是按要求一步一步::来先把这个数分别比较是否大于等于100000;大于等于10000;大于等于1000;大于等于100;大于等于10;大于等于1,用它来判断是几位数,然后整,得出每一位数.最后把这些数逆序输出就可以了。
比如:965,判断大于100,可知道是3位数.然后除以100取整,把余除以10取整,再把余除以1取整.(这部分可以用循环完成).