差值排序

来源:互联网 发布:c语言中文学习网 编辑:程序博客网 时间:2024/05/21 14:04

对整形数组按照和指定整数的差值大小进行排序,按照差值升序排列返回。

要求实现方法:

public staticint[] calcTimes(int[] num, int value);

【输入】 num:整型数组;

              value 指定的整数

【返回】 按照升序返回整型数组,排序按照各个整数和指定整数的差值大小

【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出

示例

输入:num = {1,2,3,4,5,10,17,18,19}  value = 5

返回:{5,4,3,2,1,10,17,18,19}


#include<iostream>#include<math.h>using namespace std;int len;void sort(int num[],int value){int i,b[100],j,t;for(i=0;i<len;i++) //算出数组每个数与给定数的差值b[i]=abs(num[i]-value);for(i=0;i<len-1;i++) //对差值排序for(j=0;j<len-1-i;j++)if(b[j]>b[j+1]){t=b[j];b[j]=b[j+1];b[j+1]=t;}for(i=0;i<len;i++)for(j=0;j<len;j++)if(abs(num[j]-value)==b[i]) //如果差值与b[i]相等,则输出cout<<num[j]<<" ";}void main(){int a[100],n,i=0,value;cin>>n;while(getchar()!='\n'){a[i++]=n;cin>>n;}a[i++]=n;len=i;cin>>value;sort(a,value);cout<<endl;}


0 0
原创粉丝点击