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