不適切箇所の改善よろしくお願いします。
#include <stdio.h>
int main()
{
double eps=0.00001;
printf("%lf %lf\n",(-2,0,eps),(0,2,eps));
double f(double x)
{
return x*x*x-4x*x+x+12;
}
double (double x1,double x2,double eps)
{
double x;
while(x2-x1>=eps)
{
x=(x1+x2)/2.0;
if(f(x1)*f(x)>0.0)
{
x1=x;
}
else
{
x2=x;
}
}
return (x1+x2)/2.0
}
2分法を使ってf(x)=0の解を求めるプログラムについて、間違っている箇所がわからないので訂正お願いします。
Re: 2分法を使ってf(x)=0の解を求めるプログラムについて、間違っている箇所がわからないので訂正お願いします。
そもそも、f(x)は何ですか?
二分法の前に、C言語の文法をやり直す方がいいような気がします。
main関数の範囲はどこからどこまでですか?
余分な-2, 0, 0, 2を付けている意図は何ですか?
関数名は何ですか?
セミコロンがありません。
二分法の前に、C言語の文法をやり直す方がいいような気がします。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 2分法を使ってf(x)=0の解を求めるプログラムについて、間違っている箇所がわからないので訂正お願いします。
まずソースコードをcodeタグで囲まずに貼り付けているのが不適切です。yyy さんが書きました:不適切箇所の改善よろしくお願いします。
残念ながら、このサイトではStack Overflowと違って他人の投稿を編集することができないので、改善はできません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 2分法を使ってf(x)=0の解を求めるプログラムについて、間違っている箇所がわからないので訂正お願いします。
C言語では、関数は使う前に定義または宣言をしなければいけません。【追記】よく見たら、今回はこれに違反している場所は無いですね。
また、標準規格では処理系依存なものを使わない場合、int main()ではなくint main(void) (またはint main(int argc, char* argv[])および等価なもの)としなければいけません。
また、標準規格では処理系依存なものを使わない場合、int main()ではなくint main(void) (またはint main(int argc, char* argv[])および等価なもの)としなければいけません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 2分法を使ってf(x)=0の解を求めるプログラムについて、間違っている箇所がわからないので訂正お願いします。
4xは不正なトークンです。yyy さんが書きました:return x*x*x-4x*x+x+12;
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)