gpt4 book ai didi

c - 寻找奇数的中间数

转载 作者:行者123 更新时间:2023-11-30 20:39:16 25 4
gpt4 key购买 nike

好的,为了清楚起见,我正在计算距离。如果数字是偶数,那么很容易计算,但是如果是奇数,嗯,我有一个想法,但我无法应用它。这个任务听起来是这样的:我需要找到物体之间的距离。例如给定数据:

4 // how many objects (n)
4 10 0 12 every object's distance
After sorting the numbers ( im using arrays ) the answer is: (4-0)+(12-10)=6;

所以我的代码在对偶数进行排序后似乎是正确的,但是当数字是奇数时,计算如下:

5 (n)
4 10 0 12 2
Answer= (2-0)+(4-2)+(12-10)=6;

我需要做的(我认为)是让函数在奇数的一半时停止并执行某个函数;这是我的代码:

if(n%2!=0){
for(i=0;i<n;i++){
if(i==((n/2)+1)){ // THIS PART
length+=mas[(n/2)+1]-mas[n/2];
i++;
break;
}
length+=mas[i+1]-mas[i];
i++;
}
}

最佳答案

#include <stdio.h>

int sum_distance(int n, int a[n]){
if(n < 2)
return 0;
int sum = 0;
int i=0;
if(n & 1){//n is odd
sum = a[1] - a[0];
++i;
}
for(;i<n; i+=2){
sum += a[i+1] - a[i];
}
return sum;
}

int main(){
int a[4] = { 0, 4, 10, 12};
int b[5] = { 0, 2, 4, 10, 12};//they are sorted

printf("%d\n", sum_distance(4, a));//6
printf("%d\n", sum_distance(5, b));//6

return 0;
}

关于c - 寻找奇数的中间数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26945407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com