满意答案
#include
#include
#include
#define MAX 20000 // 输入的最大个数,数组长度
/*int myabs(int n)//自写的绝对值函数
{
return (n>=0)? : n,-n;
} */
void quickSort(int a[],int left,int right)//快速排序
//a[]:参与排序数组
//left,right,排序位置,left
{
if(left
{
int t=a[left];
int temp=abs(t);//采用绝对值,注意abs()这个函数
//如果自带不起作用,可能要自已再被写一个
int i=left,j=right;
while(i
{
while(i=temp)//绝对值比较
j--;
if(i
{
a[i++]=a[j];
}
while(i
i++;
if(i
{
a[j--]=a[i];
}
}
a[i]=t;
quickSort(a,left,i-1);
quickSort(a,i+1,right);
}
}
int main()
{
int i=0, arr[MAX]={0},cnt=0;//cnt是输入计数器
//srand((unsigned)time(NULL));//随机生成测试数据使用:初始化随机种子
printf("输入:\n");
/*for(i=0; i
{
arr[i]=rand()%200-100;//随机生成-100-100的整数
printf(" %5d",arr[i]);//以宽度=5的格式输出
}*/
while(scanf("%d",&arr[cnt])!=EOF)//Ctrl+z可以手工结束循环
{
if(arr[cnt]==0)//输入0结束循环
break;
else
cnt++;
}
printf("\n");
quickSort(arr,0,cnt-1);//快速排序-绝对值升序
printf("输出:\n");
for(i=0;i
{
printf(" %5d", arr[i]);
}
printf("\n");
return 0;
}
00分享举报