みなさまのお力をお貸しください。フローチャート質問
a^2=b^2+c^2の三平方の定理のフローチャートです
1<=a,b,c<=100の範囲の自然数で
定理をみたす自然数をもとめる問題なのですが
私が考えた下記のフローチャートを見てもらえませんか?
開始
(1)a=0
(2)b=0
(3)c=0
(4)a=sqrt(pow(b,2)+pow(c,2))
(5)b=sqrt(pow(a,2)-pow(c,2));
(6)b=sqrt(pow(a,2)-pow(b,2));
(7)処理1<=a<=100NOならb=b+1,c=c+1で(4)へ
YES
(8)処理1<=b<=100NOならa=a+1で(5)へ
YES
(9)処理1<=c<=100NOならa=a+1で(6)へ
YES
(a,b,c)表示
終了
実行したら(2,1,1)になります
範囲のなかで上いがいで定理が成り立つabcを出したいのですが
どこが違うのかどうしたら良いのかアドバイスをください
一様c言語を書いてみました
できたら上の形でお願いします
a=0;
b=0;
c=0;
Label01:
a=sqrt(pow(b,2)+pow(c,2));
Label02:
b=sqrt(pow(a,2)-pow(c,2));
Label03:
c=sqrt(pow(a,2)-pow(b,2));
if (a>=1 && a<=100) {
/* YES 処理 */
printf("%d\n",a);
if (b>=1 && b<=100) {
/* YES 処理 */
printf("%d\n",b);
if (c>=1 && c<=100) {
/* YES 処理 */
printf("%d,%d,%d\n",a,b,c);
} else {
/* NO 処理 */
a=a+1;
printf("%d\n",c);
goto Label03;
}
} else {
/* NO 処理 */
a=a+1;
printf("%d\n",b);
goto Label02;
}
} else {
/* NO 処理 */
b=b+1;
c=c+1;
printf("%d\n",a);
goto Label01;
}
printf("a^2=b^2+c^2\n");
return 0;
お礼
ご回答ありがとうございました。あまりこだわらなくていいのですね。