请教qsort函数的使用-stdlib.h中的一个函数
先说问题吧,我看书上讲到一个qsort快速排序函数,仿照例子写了个程序,编译正常,没有错误及警告提示,且.exe可执行文件也生成了,但是文件执行不了,就是双击.exe毫无反应。IDE:C-FREE5.0;编译器gcc吧。 补充下:IDE直接运行同样毫无反应附上代码,请帮助看下问题出在哪里呢。谢谢
#include <stdio.h>
//引入qsort()函数所在头文件
#include <stdlib.h>
//引入memset()函数所在头文件
#include <string.h>
//自定义一个比较规则函数,必须具有两个"const void*"类型的参数
//并且返回一个int型的返回值
int cmp(const void* a,const void* b)
{
//将void*类型的指针转换为int*类型的指针
//然后用"*"解引用操作符获取它所指向的数据
//最后将两个数进行大小比较
//返回比较的结果-1(小于),0(等于),1(大于)
int m=*((int*)a);
int n=*((int*)b);
if(m<n)
return -1;
if(m==n)
return 0;
if(m>n)
return 1;
}
int main( )
{
int i=0;
//定义一个保存数据的数组
int arr[10];
//用memset()函数进行数组arr[]的初始化
memset(arr,0,10*sizeof(int));
//输入数据并保存到数组中
puts("please input 10 numbers:");
for(i=0;i<10;i++)
scanf("%d",&arr[i]);
//使用qsort()函数进行排序
qsort(arr,10,sizeof(int),cmp);
//输出排序结果
puts("the sorted numbers are:");
for(i=0;i<10;i++)
printf("%d\t",arr[i]);
return 0;
}
[此贴子已经被作者于2016-4-7 16:56编辑过]