私は、この問題をやろうとしています:http://poj.org/problem?id=1003カード二日酔いC
#include <stdio.h>
int c;
int a = 0;
int i;
int main()
{
scanf("%.2f", &c);
if (0.01 <= c <= 5.20){
for (i = 1; a < c; ++i){
a += (1/(i + 1));
}
printf("%d card(s)", i + 1);
}
return 0;
}
私のコードが動作しませんか?何らかの理由で、私は何を入力しても常に2枚のカードを返します。誰かが問題を見つけることができますか?
ありがとうございます!
これはデバッグサービスではありません。そして、**あなたのすべての必要な情報を提供しなければなりません**。 – Olaf
'1 + 1 = 2'です。あるいは、別の言い方をすると、「0」は「0.01」未満です。うーん、ちょうど 'c'は浮動小数点ではないことに気づいた。私はそれが 'scanf'に基づいていると仮定しました。 – user3386109
警告レベルが表示されましたか?現代のコンパイラは、あなたの 'scanf'文で互換性のない指定子と引数について警告することを期待しています。 –