1
我的代码的目标是获得数组和整数之间两个最接近的差异。这是我的代码。如何在数组中找到两个最接近的整数和数字之间的差异
#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;
}
我的代码,它发现differnce betweeen阵列中的所有数字和整数(公里)的问题。例如,如果公里是299以上代码的输出是:
204
183
149
1
所需的输出应该是:
149
1
我知道我得到204 183
,因为他们也满足了限制if(abs(kilometre-exit_gas[j])<distance)
所以如何我应该修改我的限制以获得期望的结果吗?
你打印出每次你找到一个更好的比赛时间距离值。将'printf()'移到for()循环后面的某处,所以你只打印最终结果,而不是所有的中间结果。 – 2015-03-30 20:59:28
'distance =(kilometer-exit_gas [0]);'读取未初始化的“kilometre”。 (也许'abs'丢失了。) – AlexD 2015-03-30 20:59:39
@yushay bohra我还没有理解你是如何得到这个结果的:204 183 149 1 – 2015-03-30 21:04:04