推荐答案
娜美小宅女
2017.10.23
采纳率:58% 等级:42
已帮助:17万人
我这儿有几个疑问:(1)我想知道,你所说的有0的情况是什么情况?输入有前置0的数据?比如(0123),还是怎么回事?(2)你输入的数据是否是正整数?或者说是非负数。能够确定不是小数。我所有的程序都是输入非负整数。我这儿有两种解法,一种解法是按照你所的方法,将输入的数据n分解开,放入数组中。然后对数组进行从大到小的排序,最后输出数组中的数据。这个程序中的数据可以有前置0,比如0123,程序当做123来处理。还有一种解法是,直接用字符串接收,这样就不用对数据进行拆分了,直接对字符串中的数排序,然后输出字符串。这种解法,输入的数据不能有前置0.第一种解法的程序:#include #include #include int cmp(const void *p, const void *q){ return *(int *)q-*(int *)p;}int main(){ int m, n, i, j, a[100]; while(scanf("%d", &n)==1) { m = n; i=0; do { a[i] = m%10; m = m/10; i++; }while(m); qsort(a, i, sizeof(int), cmp); for(j=0; j#include #include int cmp(const void *p, const void *q){ return *(char *)q-*(char *)p;}int main(){ char s[100]; int i, t; while(scanf("%s", s)==1) { t = strlen(s); qsort(s, t, sizeof(char), cmp); puts(s); }}
00分享举报
此回答由管理员 一世的约萣靓 推荐为最佳回答。