2.给一个不多于5位的正整数,要求: ①求出它是几位数; ②分别输出每一位数字 ③按逆序输出各位数字。
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
}
}
哪有问题,谢谢 展开
推荐于2017-06-01 · 知道合伙人教育行家
先定义一个整型变量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
*/
#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;
}
}