C语言 给出一个不多于4位的正整数。1.输出它是几位数 2.输出每一位数字 3.按逆序输出各位数字,

 我来答
qimingxingwen
推荐于2018-12-18 · TA获得超过432个赞
知道小有建树答主
回答量:269
采纳率:50%
帮助的人:184万
展开全部
#include <stdio.h>
#include <math.h>

int main(void)
{
int num;
do
{
printf("请输入一个不大于四位的数据:\n");
scanf("%d", &num);
while(getchar()!='\n') //防止意外输入无效字符
continue;
}while(!(num>0 && num<10000));

int i=1, weishu=0;
for(i=1; num/i>0; i=i*10)
weishu++;
printf("输入的数据是%d位数据\n", weishu);

int num1 = num;
for(i=pow(10, weishu-1); i>=1; i/=10)
{
printf("%d\t", num1/i);
num1 = num1%i;
}
printf("\n");

num1 = num;
for(i=10; i<=pow(10, weishu); i*=10)
{
printf("%d\t", num1%10);
num1 = num1/10;
}
printf("\n");

return 0;
}

/*
VC++ 6.0 运行结果

请输入一个不大于四位的数据:
1234
输入的数据是4位数据
1 2 3 4
4 3 2 1
Press any key to continue
*/
Shirley8798
2012-03-29
知道答主
回答量:49
采纳率:0%
帮助的人:19.2万
展开全部
#include "stdio.h"
void main()
{
int x,a,b,c,d,e,n,j;
printf("请输入一个不多于5位的正整数\n");
scanf("%d",&x);
a=x/10000;
b=x/1000-a*10;
c=x/100-a*100-b*10;
d=x/10-a*1000-b*100-c*10;
e=x-a*10000-b*1000-c*100-d*10;
if(a!=0)n=5;
else if(a==0 && b!=0)n=4;
else if(a==0 && b==0 && c!=0)n=3;
else if(a==0 && b==0 && c==0 && d!=0)n=2;
else n=1;
if(a>9)printf("输入的数大于5位!\n");
else
{

if(n==1) printf("该数字是%d位数,个位%d\n",n,e);
else if(n==2) printf("该数字是%d位数,十位%d,个位%d\n",n,d,e);
else if(n==3) printf("该数字是%d位数,百位%d,十位%d,个位%d\n",n,c,d,e);
else if(n==4) printf("该数字是%d位数,千位%d,百位%d,十位%d,个位%d\n",n,b,c,d,e);
else if(n==5) printf("该数字是%d位数,万位%d,千位%d,百位%d,十位%d,个位%d\n",n,a,b,c,d,e);

if(n==5)j=e*10000+d*1000+c*100+b*10+a;
else if(n==4)j=e*1000+d*100+c*10+b;
else if(n==3)j=e*100+d*10+c;
else if(n==2)j=e*10+d;
else j=e;
printf("该数的逆序是%d\n",j);
}
}
这个是不多于5位的,你修改一下就可以用了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式