2.给一个不多于5位的正整数,要求: ①求出它是几位数; ②分别输出每一位数字 ③按逆序输出各位数字。

#include<stdio.h>voidmain(){intx,|1,|2,|3,|4,|5;/*|1|2|3|4|5代表各位数字*/;printf("请输入一个不多于... #include <stdio.h>
void main()
{
int x,|1,|2,|3,|4,|5;/* |1 |2 |3 |4 |5代表各位数字*/ ;
printf("请输入一个不多于5位的正整数:");
scanf("%d",&x);
if (x<10)
{
printf("%d是一个1位数\n",x);
printf("个位数是%d\n",x);
}
else if (x<100)
{
printf("%d是一个2位数\n",x);
|1=x/10;
|2=x-|1*10;
printf("个位%d,十位%d\n",|1,|2);
printf("逆序输出:%d",|2*10+|1);
}
else if (x<1000)
{
printf("%d是一个3位数的数\n",x);
|1=x/100;
|2=(x-|1*100)/10;
|3=x-|1*100-|2*10;
printf("个位%d,十位%d,百位%d\n",|1,|2,|3);
printf("逆序输出:%d",|3*100+|2*10+|1);
}
else if(x<10000)
{
printf("%d是一个4位数的数\n",x);
|1=x/1000;
|2=(x-|1*1000)/100;
|3=(x-|1*1000-|2*100)/10;
|4=x-|1*1000-|2*100-|3*10;
printf("个位%d,十位%d,百位%d,千位%d\n",|1,|2,|3,|4);
printf("逆序输出:%d",|4*1000+|3*100+|2*10+|1);
}
else
{
return 0
}
}
哪有问题,谢谢
展开
 我来答
985967518
推荐于2017-06-01 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109866
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部

先定义一个整型变量a,键盘输入赋值给a,a对10求余,再a除以10,循环操作,直到a等于0,用一个数组依次储存余数,就是a各位上的数。

//参考代码 
#include<stdio.h>
int main(){
int i=0,j,a,n[6];
scanf("%d",&a);
while(a){
n[i++]=a%10;
a/=10;
}
printf("它是%d位数\n",i);
printf("正序输出各数:");
for(j=i-1;j>=0;j--)
printf("%d ",n[j]); 
printf("\n逆序输出各数:");
for(j=0;j<i;j++)
printf("%d ",n[j]);
return 0;
}
 /*
1234
它是4位数
正序输出各数:1 2 3 4
逆序输出各数:4 3 2 1
 */
englishisxu
推荐于2018-02-27 · 超过23用户采纳过TA的回答
知道答主
回答量:110
采纳率:0%
帮助的人:49.3万
展开全部

#include <stdio.h> 

void main() 

int x,l1,l2,l3,l4,l5;/* l1 l2 l3 l4 l5代表各位数字*/ ;

printf("请输入一个不多于5位的正整数:"); 

scanf("%d",&x); 

if (x<10) 

printf("%d是一个1位数\n",x); 

printf("个位数是%d\n",x);

else if (x<100) 

printf("%d是一个2位数\n",x); 

l1=x/10; 

l2=x-l1*10; 

printf("个位%d,十位%d\n",l1,l2); 

printf("逆序输出:%d\n",l2*10+l1);

}

else if (x<1000)

{

printf("%d是一个3位数的数\n",x);

l1=x/100;

l2=(x-l1*100)/10;

l3=x-l1*100-l2*10;

printf("个位%d,十位%d,百位%d\n",l1,l2,l3);

printf("逆序输出:%d\n",l3*100+l2*10+l1);

}

else if(x<10000)

{

printf("%d是一个4位数的数\n",x);

l1=x/1000;

l2=(x-l1*1000)/100;

l3=(x-l1*1000-l2*100)/10;

l4=x-l1*1000-l2*100-l3*10;

printf("个位%d,十位%d,百位%d,千位%d\n",l1,l2,l3,l4);

printf("逆序输出:%d\n",l4*1000+l3*100+l2*10+l1);

}

else

{

return 0;

}

}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-04-21
展开全部
/*改了,最大的问师是 |是特殊符号,不能用的定义变量上,其它的都是小问题*/
#include <stdio.h>
void main()
{
int x,m1,m2,m3,m4,m5;/* m1 m2 m3 m4 m5代表各位数字*/ ;
printf("请输入一个不多于5位的正整数:");
scanf("%d",&x);
if (x<10)
{
printf("%d是一个1位数\n",x);
printf("个位数是%d\n",x);
}
else if (x<100)
{
printf("%d是一个2位数\n",x);
m1=x/10;
m2=x-m1*10;
printf("个位%d,十位%d\n",m2,m1);
printf("逆序输出:%d",m2*10+m1);
}
else if (x<1000)
{
printf("%d是一个3位数的数\n",x);
m1=x/100;
m2=(x-m1*100)/10;
m3=x-m1*100-m2*10;
printf("个位%d,十位%d,百位%d\n",m3,m2,m1);
printf("逆序输出:%d",m3*100+m2*10+m1);
}
else if(x<10000)
{
printf("%d是一个4位数的数\n",x);
m1=x/1000;
m2=(x-m1*1000)/100;
m3=(x-m1*1000-m2*100)/10;
m4=x-m1*1000-m2*100-m3*10;
printf("个位%d,十位%d,百位%d,千位%d\n",m4,m3,m2,m1);
printf("逆序输出:%d",m4*1000+m3*100+m2*10+m1);
}
else
{
return;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式