C语言绝对值不超过100,c语言:输入一些有正有负的数(个数不超过20000个,绝对值大小不超过10000),以0表示输入结...

满意答案

#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;

}

866fdbe01b87a25ee3624f156f30bf3d.png

00分享举报

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值