当前位置:系统粉 > 电脑问答 > 其他问答 > 求一个解法,怎么就忘了。。

求一个解法,怎么就忘了。。

提问者:mistletoe_14  |  浏览 次  |  提问时间:2017-02-16  |  回答数量:9

求一个解法,怎么就忘了。。 输入N个数,把N个数按小到大的顺序输出,要求最简单,最效率的代码

已有9条答案
我陪你哭°

我陪你哭°

回答数:63  |  被采纳数:41

2017-02-16 18:40:23
我先看看我的笔记,有知道的就进来说吧, (1)
赞 6
_轻狂少年_

_轻狂少年_

回答数:171  |  被采纳数:100

2017-02-16 17:32:40
#include <stdlib.h>#include <stdio.h>int sortfun(const void *elem1, const void *elem2 ){int num1=*(int*)elem1;int num2=*(int*)elem2;if(num1>num2)return 1;else if(num1<num2)return -1;else return 0;}void main(){int num[]={1,5,2,6,34,2,3,5,7,4,3,2,7,8,4,2,6};int n=sizeof(num)/4;qsort(num,n,4,sortfun);for(int i=0;i<n;i++)printf("%d\t",num[i]);}复制代码
赞 17
丶童年的糖果罐

丶童年的糖果罐

回答数:183  |  被采纳数:79

2017-02-16 19:11:04
int sortfun(const void *elem1, const void *elem2 )
{
int num1=*(int*)elem1;
int num2=*(int*)elem2;
if(num1>num2)return 1;
else if(num1<num2)return -1;
else return 0;
}


这个函数能解释一下吗? (2)
赞 18
461211393

461211393

回答数:8  |  被采纳数:130

2017-02-16 22:29:26
哦,版主不用解释了, 你用的是定义数组的办法,当然要这样的话,可以用折半或者相邻比较法
但是我是说不用数组和指针的情况下
赞 0
草莓维尼熊

草莓维尼熊

回答数:155  |  被采纳数:111

2017-02-17 04:30:07
不用数组你要把输入的数放哪?
赞 15
qq420866240

qq420866240

回答数:138  |  被采纳数:82

2017-02-16 20:43:16
我是要输入N个数,然后再排序输出,
赞 13
an丶trial

an丶trial

回答数:55  |  被采纳数:54

2017-02-16 20:47:37
是啊,这些数不是保存在数组中吗?或者你的意思是你不知道怎样输入? 用scanf("%d",&num[ i])
赞 5
animalhappy

animalhappy

回答数:113  |  被采纳数:23

2017-02-16 22:13:30
不是不知道这个数组的输入, 我是说比如直接定义 num1 num2...num99
这99个数是要我们输入,然后按照顺序输出、但是,不要用数组
赞 11
不知为何深爱

不知为何深爱

回答数:60  |  被采纳数:132

2017-02-17 07:16:01
没有一个正常人会用这种方法,如果n=100000是不是要定义到num100000
赞 6
解决方法
版权信息

Copyright @ 2011 系统粉 版权声明 最新发布内容 网站导航