-3

Cでニュートンラフソン法を実装していました。コードはうまく機能します。コードにエラーはありません。

#include<stdio.h>
#include<math.h>
#define  f(x)(x * sin(x)+cos(x))
#define df(x)(x*cos(x))
int main()
{
   float x,h,e;
   e=0.0001;
   printf("Enter the initial value of x:\n");
   scanf("%f",&x);
 do
  {
     h=-f(x)/df(x);
     x=x+h;
  }
  while(fabs(h)>e);
  printf("The value of the root is=%f",x);
  return(0);
 }
/*
Output:
Enter the initial value of x: 3
The value of the root is = 2.798386

しかし、驚いたのは、このコードがどのように機能したかということです。c 規則に従って、while ステートメントには終了セミコロンがありません。ただし、私のコードではwhile(fabs(h)>e); セミコロンがありますが、うまく動作します。

誰がそれがどのように機能するか教えてもらえますか?

4

2 に答える 2