尋找相近值(相同距取小值)【陣列練習運用】

在邏輯思考上有時候會因為條件與敘述方式不同而讓自己的思緒卡彈,有時候是會而無法融會貫通,所以在不同背景與人事物各方面的差異,在練習題過後,實做上會遭遇到種種困難,必須要仔細去品嘗製作範例者的思維,了解後嘗試著自己建立,既使遇到困難處或Bug處,因為思慮比較清楚且有概念的狀態下,解決上並不會有太大的問題,除了多練習,還是要好好了解他人的程式結構與思考邏輯。
練習範例如下:
#include<stdio.h>
#include<stdlib.h>
int main(){
int i,n[10],ask;
for(i=1;i<=10;++i){
scanf("%d",&n[i-1]);
}
while(1){
for(i=1;i<=10;++i){
printf("%d ",n[i-1]);
}
printf("\n");
printf("ASK: ");
scanf("%d",&ask);
if(ask==0){
break;
}
int ans=n[0],near_d=abs(n[0]-ask);
for(i=1;i<10;++i){
int d=abs(n[i]-ask);
if(d<near_d
||(d==near_d&&n[i]<ans)){
ans=n[i];
near_d=d;
}
}
printf("%d\n",ans);
}

return 0;
}

留言