1. 程式人生 > 程式設計 >C語言:利用指標編寫程式,用梯形法計算給定的定積分例項

C語言:利用指標編寫程式,用梯形法計算給定的定積分例項

題目要求

利用指標編寫程式,用梯形法計算下列公式中的定積分:

參考程式碼

首先說明一下指標的用處:因為所傳遞的引數均為數字,並不需要使用指標提高效率,故這裡使用指標指向函式。

請注意calc()函式中的這一語句:

double(*pfunction)() = &function;

即實現了我所描述的過程。

程式碼如下:

#include <stdio.h>
#include <math.h>

double function(double x){
  return (double)(pow(x,3) + x/2 + 1);
}

double calc(double a,double b){
  double ha,hb,result=0;
  int i;
  double(*pfunction)() = &function; 
  for(i=0; i<1000; i++){
    ha = (*pfunction)(a+i*(b-a)/1000.0);
    hb = (*pfunction)(a+(i+1)*(b-a)/1000.0);
    result += ((ha + hb)*(b-a)/1000.0)/2.0;
  }
  return result;
}

void main(){
  double a = 0,b = 10,result;
  result = calc(a,b);
  printf("%lf",result);
}

執行結果

【輸出】

2535.002500

與實際值2535並無太大差距。若想提高精確度可進一步提高微元分段的數量。

以上這篇C語言:利用指標編寫程式,用梯形法計算給定的定積分例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。