#include <stdio.h>
int main()
{
int t, w;
long int n, m, c, i, j, f = 0;
long long int b, s = 1;
scanf("%d",&t);
for(w = 1; w <= t; w++)
{
f = 0;
s = 1;
scanf("%ld %ld %ld",&n,&m,&c);
b = (long long int) n * m;
if (c > b) {
printf("%d\n",0);
} else {
for(i = 1; i <= n; i++) {
for(j = 1; j <= m; j++) {
s = i * j;
if (s == c) {
f++;
s = 1;
}
}
printf("%ld\n",f);
}
}
return 0;
}
}
入力は、次のとおりです。大きな入力のためにこのCプログラムをデバッグするには?
1
1000000
1000000
1000000
しかし出力で、それはfの値を示すものではありません。なぜ出力にfの値が表示されないのですか?私が使用したデータ型に関する問題はありますか?
変数 't、w、n、m、c、i、j、f、b、s'を真剣に指定しましたか?どのようにこのコードの意味を理解するはずですか? – abelenky
'long'は一般的に32ビットのデータ型なので、+/- 2147483647です。あなたは' 1000000000000'でそれを過ぎています。あなたはおそらく 'long long'を望んでいます。これは64ビットでなければなりません。 –
どうすればそれを得ることができますか? @MarcB –