对整形数组按照和指定整数的差值大小进行排序,按照差值升序排列返回。
要求实现方法:
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;
}