※ ChatGPTを利用し、要約された質問です(原文:C言語の関数に関する質問ですが)
C言語関数の最大値プログラムを作成する方法
このQ&Aのポイント
C言語の初心者のため、関数を使った最大値プログラムを作成したい
既存のプログラムでは関数の中で関数を使えないため、どのように修正すれば良いかわからない
演習で実数xを入力して最大値を求めるプログラムを作成し、うまく実行できない問題に直面している
C言語の初心者です。よろしくお願いいたします。
授業でこのような演習が出ました。
演習:実数x を入力したときの最大値を求めるプログラムを作れ.
実数x を入力すると,x; -x; x2; xの絶対値の平方根 の中で一番大きい値を答える
プログラムを作れ(ファイル名はmax.c とする).
表示は以下のようにする.
Input x: -0.5 【Enter】
Answer is 0.707107.
#include<stdio.h>
#include<math.h>
double max(double a, double b){
if( a > b) return a;
else return b;
}
int main(void)
{
double x,y;
printf(\"Input x: \");
scanf(\"%lf\",&x);
y = max (x,-x);
y = max (y,x*x);
y = max (y,sqrt(fabs(x)));
printf(\"Answer is %f.\\n\",y);
}
このように書けばうまく実行できますが、関数の中に関数を使えないでしょうか。うまく言えないですが、たとえば、以下のように書いてみましたが、うまく実行できません。どう直したらいいでしょうか、お忙しい中教えていただけたらうれしいです。
#include <stdio.h>
#include <math.h>
int max(double a,double b)
{
if (a<b) return b;
else return a;}
int main(void)
{
double x,result;
printf(\"Input x:\");
scanf(\"%lf\",&x);
result=max(max(x,-x),max(pow(x,2),sqrt(fabs(x))));
printf(\"%.2f\",result);
return 0;
}
よろしくお願いいたします!!
お礼
そのように直して実行したら、うまく結果が出ました。 初心者の私のために細かいところをチェックして頂き、 本当にありがとうございます!!