四位正整数各位分离升序排列
从键盘输入一个四位正整数,首先分离出该整数中的每一位数字,并按升序显示输出各位数字;然后用分离出的最大数做为十位数,最小数做为个位数组成一个新的数字,并显示输出结果。例如,若输入的四位正整数为9215,按升序显示输出分离出的各位数字为1 2 5 9;组成数字为91。
具体要求:
①四位正整数由键盘输入,程序应该对输入的数字是否为四位正整数进行简单的判断;
②对输出结果要有具体说明。
#include<stdio.h>
int main()
{
int a,b,c,d,n1,n2,y1,y2,z1,z2,e,x,t;
printf("请输入一个四位正整数:");
scanf("%d",&x);
if(x>9999||x<1000)
printf("输入错误!\n");
else{
a=x/1000;
b=x/100%10;
c=x/10%10;
d=x%10;
y1=a>b?a:b;
z1=c>d?c:d;
n1=y1>z1?y1:z1;
y2=a<b?a:b;
z2=c<d?c:d;
n2=y2<z2?y2:z2;
e=10*n1+n2;
printf("重组的二位数为:%d\n",e);
if(a>b)
{
t=a;
a=b;
b=t;
}
if(a>c)
{
t=a;
a=c;
c=t;
}
if(a>d)
{
t=a;
a=d;
d=t;
}
if(b>c)
{
t=b;
b=c;
c=t;
}
if(b>d)
{
t=b;
b=d;
d=t;
}
if(c>d)
{
t=c;
c=d;
d=t;
}
printf("按照升序输出分离的各位数字为:%d,%d,%d,%d\n",a,b,c,d);
}
return 0;
}