我的代码的目标是在数组中的数字和整数之间获得两个最接近的差。 这是我的代码。

#include <stdio.h>
int main()
{
int kilometre, exit_gas[7]={90,95,116,150,300,377,677},i,distance;
distance=(kilometre-exit_gas[0]);
printf("Enter your kilometre reading:");
scanf("%d",&kilometre);
for(j=1;j<8;++j){
    if(abs(kilometre-exit_gas[j])<distance){
        distance=abs(kilometre-exit_gas[j]);
        printf("%d\n",distance);
    }
}
return 0;
}

我的代码存在的问题是,它发现数组中的所有数字与整数(kilometre)之间存在差异。 例如,如果千米为299,则上述代码的输出为:

204
183
149
1

所需的输出应为:

149
1

我知道我得到204 183因为它们也满足条件if(abs(kilometre-exit_gas[j])<distance)限制,那么我应该如何修改限制以获得理想的结果?

#1楼 票数:1 已采纳

我不知道您如何获得显示在帖子中的结果,因为我得到了另一个结果。 但是,该程序可以采用以下方式。

#include <stdio.h>
#include <stdlib.h>

int main(void) 
{
    int exit_gas[] = { 90, 95, 116, 150, 300, 377, 677 };
    const size_t N = sizeof( exit_gas ) / sizeof( *exit_gas );
    size_t i;
    int kilometre;
    unsigned int first, second;

    printf( "Enter your kilometre reading: " );
    scanf( "%d", &kilometre );

    for ( i = 0; i < N; i++ )
    {
        unsigned int distance = abs( kilometre - exit_gas[i] );
        if ( i == 0 || distance < first )
        {
            if ( i != 0 ) second = first;
            first = distance;
        }
        else if ( i == 1 || distance < second )
        {
            second = distance;
        }
    }

    printf( "%u\n", first );
    printf( "%u\n", second );

    return 0;
}

我的程序的输出是

1
78

  ask by yushay bohra translate from so

未解决问题?本站智能推荐:

2回复

在数组中找到5个元素,它们的和最接近或等于给定的数字

我需要一些提示来找到一种算法,该算法返回5元素的总和最接近或等于给定数字。 这些元素是大于0数字,并且在尝试获取给定数字时,每个元素只能“使用” 1次。 假设我们有一个数组{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}和我们想要得到的数字21 。 它应该返回{2,
1回复

给定一个排序的整数数组,并在c中找到最接近给定数字的值。 数组可能包含重复值

例如,我们在一个数组中有5值( a,b,c,e,d ),其中可能包含重复的值.a a,b,c,d,e的值由另一个函数计算并分配了一些值。 让用户输入值为x 。 我们需要在数组中找到最接近x值,并且输出必须在a,b,c,e,d 。 如果最接近的数字是重复项之一,则必须考虑字母顺序。 例
3回复

C-获取数组中两个最接近的整数

我有一个数组,要求用户输入。 (我问了数组中的数字数,我问了这些数字)。 我的问题是如何比较所有数字并找到两个最接近的数字? 因此,例如,如果用户输入了4个数字,例如:3、5、8、9。程序应将8和9看成是最接近的数字? 之后,我只需要减去两个最接近的数字。 到目前为止,这是我的
4回复

使用xor解释在数组中找到两个非重复的整数

给定[1,1,4,5,5,6]我们可以发现4和6是非重复整数。 有一个使用XOR的解决方案 。 这是作者提出的算法: 我对4^6之后的内容感到困惑。 我很困惑set_bit_no如何工作(包括动机)以及之后的任何事情。 有人可以尝试用更简单的英语方式解释它吗? 谢谢
2回复

如何根据两个数字之间的差值最接近给定数字来选择它们?

我有以下代码: 我想分配min和max以便它们的差max-min最接近difference 。 在这种情况下,最小值应为1.3,最大值为7.0。 我怎样才能做到这一点 ?
5回复

在数组中找到最接近零的数字

我有一堆 numpy 数组,其中有正数和负数,我想在每个数组中找到最接近零的数字而不是最小的数字。 我也想保留数字的符号。 下面的例子: 理想的输出应该是给我最接近零的数字,所以对于每个数组,它分别是: 有没有办法做到这一点?
2回复

如何在C中找到最接近的平均值元素?

嗨,我怎样才能找到这个数组中最接近的平均值? 我知道如何做到这一点。 提前致谢,伙计们! :D
5回复

查找数组中的孤独整数

如果可以,请参考这个hackerrank挑战。 问题是在数组中找到孤独的整数,给定一个数组,除了一个孤独的整数外,只由对组成。 问题在于这个测试用例 9 是数组大小,下面是数组 查看由 //------ 突出显示的代码部分 如果我将scanf("%d", &n)放在int arr[