• ベストアンサー

C言語について

任意のdouble型の2変数x、yが原点を中心として半径1の円の上にある点かどうかを判定する関数 int f(double x, double y); を作りなさい。(main関数は不要。上記関数の定義部分だけでよい。) ただし、円の上の点なら1を、そうでなければ0を返すものとする。 ※中心位置(0,0)、半径rの円の方程式は x^2+y^2=r^2 である。 よろしくお願いいたします

質問者が選んだベストアンサー

  • ベストアンサー
  • ferien
  • ベストアンサー率64% (697/1085)
回答No.1

void main() {   double x, y;   printf("2数を入力:\n");   printf("x="); scanf("%lf", &x);   printf("y="); scanf("%lf", &y); printf("戻り値 : %d", f(x,y)); } int f(double x, double y) { if(x*x+y*y == 1.0)        return 1; else        return 0; } すごく簡単ですが、これで上の問題の通りの出力をします。(main関数も付けました) 試してみて下さい。

wish33
質問者

お礼

詳しく教えていただき、ありがとうございました

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • ki073
  • ベストアンサー率77% (491/634)
回答No.2

#include <stdio.h> #include <math.h> int main() { double x, y; int i; for(i=0; i<100; i++){ x=i*0.01; y=sqrt(1.0-x*x); printf("x=%g y=%g x*x+y*y=%10.8f\n", x, y, x*x+y*y); printf("戻り値 : %d\n", f(x,y)); } } にNo.1の関数をくっ付けて実行してみてください。 全部は1にはならないはずです。 理由はあえて書きませんので考えてみてください。

wish33
質問者

お礼

ありがとうございました

すると、全ての回答が全文表示されます。

関連するQ&A