↓こちらの問題について質問です。C言語で解いています。
https://atcoder.jp/contests/abc113/tasks/abc113_b
①
int main(void) { int N, T, A, H, ans; int temp, dif, mindif = 1e9; scanf("%d", &N); scanf("%d %d", &T, &A); for (int i = 1; i <= N; i++) { scanf("%d", &H); dif = abs(A * 1000 - (T * 1000 - H * 6)); if (mindif > dif) { mindif = dif; ans = i; } } printf("%d", ans); }
↑①だと正解になり、
②
int main(void){ int N,T,A,H,ans; int temp,dif,mindif=1e9; scanf("%d",&N); scanf("%d %d",&T,&A); for(int i=1;i<=N;i++){ scanf("%d",&H); temp=0; temp=T*100-(H*6) A=A*1000; dif=abs(A-temp); if(mindif>dif){ mindif=dif; ans=i; } } printf("%d",ans); }
↑②のようにdifの出し方を分けると(太字部分)、上手く出力されないのですが理由が分かりません。
分かる方がいらっしゃいましたら教えていただきたいです。長文ですみません。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/09/08 12:32