下記のような質問をして、解答していただき、コンパイル実行をしました。
コンパイル時はマクロ定義した関数を括弧でくくりました。
Linux GNOME端末です。
『
C言語数値計算 ニュートン法です。
下記のプログラミングで、何故#include<stdlib.h>が必要なのかよく分かりません。先ほどの質問で、関数のマクロ定義は良くないと伺いましたが、今回はマクロ定義でのせさせていただきます。よろしくお願いします。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define F(x) exp(x)-3.*x
#define FD(x) exp(x)-3.
#define EPS 1.E-5
void main(void)
{
double x=0.0,fx,fdx,fx;
int n=0;
do{
fx=F(x);
fdx=FD(x);
dx=-fx/fdx;
n++;
x+=dx;
}
while(fabs(dx/x)>EPS);
printf("x=%7.3f\n",x);
}
』
すると、#include<stdlib.h>があってもなくても下のようなエラーがでます。間違いを指摘していただきたいです。
:(.text+0x24): undefined reference to exp' :(.text+0x3f): undefined reference to
exp'
回答3件
あなたの回答
tips
プレビュー