初学者关于字符串输入和排序的问题求教
原题是:Given a positive integer less than 10,000, find the largest possible number than can be formed by rearranging the digits of the number. For example, an input of 6859 would have an output of 9865.要求:1)对任意小于10000的输入均能得出正确的结果;(2)编程实现时注意数据类型的选取,演示时要求讲出程序原理。
一开始的字符串可不可以不限制长度?如果要求输入负数也能排序怎么修改?
#include<stdio.h>
#include<string.h>
void main()
{
char ch[8];
int i,j,n,t;
printf("Please input a integer less than 10000\n");
gets(ch);
n=strlen(ch);
for(i=0;i<n-1;i++)
for(j=i;j<n;j++)
if(ch[i]<ch[j])
{
t=ch[i];
ch[i]=ch[j];
ch[j]=t;
}
printf("各位数从大到小顺序排列后为:");
puts(ch);
}