用c语言,编写程序对1个4位的整数进行重新组合,生成一个最大数(降序排序),并将最大数返回给主函数。

如:9198,重新组合生产9981.
1、在主函数中输入待处理的数值,输出新数值
2、在split函数中完成数值的分解,函数原型:void split(int a[],int x);
3、在sort函数中完成排序,函数原型:void sort(int a[]);
4、在compose函数中完成新数值的合成,函数原型:int compose(int a[]);
5、对三个函数的调用全部在主函数中完成。
6、三个函数之间不允许互相调用。

#include "stdio.h"
#include <math.h>

void split(int a[],int x)
{
int i=0;
while(x>0)
{
a[i++]=x%10;
x=x/10;
}
}

void sort(int a[])
{
int i,j,d;
for(i=0;i<4;i++)
{
for(j=0;j<4-i-1;j++)
{
if(a[j]<a[j+1])
{
d=a[j];
a[j]=a[j+1];
a[j+1]=d;
}
}
}
}

int compose(int a[])
{
int i,x=0;
for(i=0;i<4;i++)
x+=a[i]*pow(10,3-i);
return x;
}

void main()
{
int a[5],x;
printf("请输入4位的整数: ");
scanf("%d",&x);
split(a, x);
sort(a);
x=compose(a);
printf("最大数:%d\n",x);
}
温馨提示:答案为网友推荐,仅供参考
相似回答