输入一个自然数(如4768),重新排列各位数字,输出排列后的最大数(8764)用C语言

来源:百度知道 编辑:UC知道 时间:2024/06/04 20:13:29
输入一个自然数(如4768),重新排列各位数字,输出排列后的最大数(8764)用C语言

...头文件

int n;//接收输入
int a[4];
for(int i=0;i<4;i++)
{
a[i]=n%10;
n/=10;
}
//排序
int temp;
for (int i=0;i<n;i++){
for (int j=i;j<n;j++){
if (a[j]>a[i]){
temp=a[i];
a[i]=a[j];
a[j]=temp;}
}
}
for(int i=0;i<4;i++){
printf(%d,a[i]);}

long num;
char a[13];

int main()
{int i=0;
int k,m,tmp;
scanf("%ld",&num);
while(num>0)
{i++;
a[i]=num%10+'0';
num=num/10;
}
for(k=1;k<i;k++)
for(m=k+1;m<=i;m++)
if(a[m]>a[k]) {
tmp=a[k];
a[k]=a[m];
a[m]=tmp;
}
printf("%s",a+1);
getch();
getch();
}