使用qsort时遇到的问题

对int数组排序:
#include<stdio.h>

#include<stdlib.h>

int cmp(const void *a, const void *b)     //int 是作为返回值类型,返回值为真或假,故用int(包括数据double时)

{

     return(*(int *)a-*(int *)b);                //如果是double型数组,则int改为double就可以了

}

int main()

{

	int k,a[100000];

	long i,n;

	char b[5];

	while(scanf("%ld",&n)!=EOF)

	{

		for(i=0;i<n;i++)

			scanf("%d",&a[i]);

		scanf("%s",b);

		qsort(a,n,sizeof(a[0]),cmp);   //sizeof(a)-->sizeof(a[0]) 

		scanf("%d",&k);

		while(k--)

		{

			scanf("%d",&i);

			printf("%d\n",a[i-1]);

		}

	}

	return 0;

}

你可能感兴趣的:(sort)