c语言中,输入一串数字,输出其组合最大值.如输入1,2,3,4,如何输出其最大值4321.

2024年11月22日 09:33
有2个网友回答
网友(1):

int main()                            //主函数
{char s[100];                         //定义一个足够大的数组用于存数字
 int a,n=0,                           //n是数字个数,a是组合出来的最大数
     i,j;                             //i,j为循环变量
 gets(s);                             //接受一个字符串
 printf("输入的字符串为:%s\n",s);     //输出字符串
 while(s[n++]);n--;                   //求出s字符串的长
 for(i=0;i     for(j=0;j         if(s[j]           {a=s[j];                   //将这两个数对调 
            s[j]=s[j+1];              //这样可以实现数组的降序排列
            s[j+1]=a;}
 a=0;                                 //把a归零
 for(i=0;i    {if(s[i]>='0'&&s[i]<='9')         //如果数组中的字符是数字
        a=a*10+s[i]-'0';}             //累加出a的值
 printf("可以组成的最大数是:%d\n",a); //输出结果
 system("PAUSE");                     //暂停
 return 0;}                           //结束

网友(2):

其实是利用十进制来做,如4321可写成,4×10的3三次方加3乘以10的二次方加2乘以10的1次方加上1.即可的到结果,因为你只需改变4321的顺序,然后按照上述的方法计算,然后赋值给一个变量,输出变量即可。