http://projecteuler.net/index.php?section=problems&id=9であるProjectEuler#9を解決しようとしています。
私はこのコードを調べましたが、ロジックは正しいようです…しかし、ループ内のprintfsでさえも、まったく出力を取得していません。私は(明らかに)C初心者で、高級言語から学ぼうとしています…何が悪いのか教えていただけますか?
#include <stdio.h>
int main(){
unsigned int a=0, b=0, c=0;
short int pass=0;
while(!pass){
//printf("a = %4d\n", a);
a++;
b=a;
while(!pass){
b++;
c=1000-a-b;
if(b>=c) break;
if(a*a+b*b==c*c) pass = 1;
}
}
printf("a=%d, b=%d, c=%d, a*b*c=%d, a+b+c=%d\n", a, b, c, a*b*c,a+b+c);
return 1;
}
本当にありがとう。
編集:さて、上記のように浮動小数点の問題を修正しましたが、何らかの理由で2を超えることはなく、無限にループします。
編集:私はいくつかのバグを修正しましたが、それでも、それは戻りますa=33, b=483, c=484, a*b*c=7714476, a+b+c=1000
、それは完全に正しくありません。:(
うわー、私はそれを複雑にしすぎていました。今は動作します。みんな、ありがとう。