编程实现:从键盘任意输入一个三位正整数,将该数分解成个位、十位、百位三个数字,将它们按从小到大排序后输出。例如,若输入520,则输出0<2<5?
#include<stdio.h>
int main()
{
int n,k=0;
int a[11]={0};
scanf("%d",&n);
while(n)
{
a[k++]=n%10;//提取各个位上的数,储存在数组a中
n/=10;
}
for(int i=0;i<k;i++)//冒泡排序
for(int j=0;j<k-i-1;j++)
if(a[j]>a[j+1])
{
int t;
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(int i=0;i<k;i++)//从小到大输出各个位
if(i!=k-1)
printf("%d<",a[i]);
else
printf("%d",a[i]);
return 0;
}
#include <stdio.h>
int main()
{
int a,b,c,n;
scanf("%d",&n);
a=n%10;
b=n/10%10;
c=n/100;
if(b<a)
{
n=a;
a=b;
b=n;
}
if(c<a)
{
n=a;
a=c;
c=n;
}
if(c<b)
{
n=b;
b=c;
c=n;
}
printf("%d<%d<%d\n",a,b,c);
return 0;
}
#include <stdio.h>
int main()
{
int a[3],n,i,j;
while(scanf("%d",&n)==1)
{
for(i=0;i<3;++i,n/=10)
a[i]=n%10;
for(i=0;i<2;++i)
for(j=0;j<2-i;++j)
if(a[j]>a[j+1])
{
n=a[j];
a[j]=a[j+1];
a[j+1]=n;
}
printf("%d<%d<%d\n",a[0],a[1],a[2]);
}
return 0;
}