编程实现:从键盘任意输入一个三位正整数,将该数分解成个位、十位、百位三个数字,将它们按从小到大排?

编程实现:从键盘任意输入一个三位正整数,将该数分解成个位、十位、百位三个数字,将它们按从小到大排序后输出。例如,若输入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;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-10-17
//c语言代码:
#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;
}
第2个回答  2020-10-17

#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;

}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网