溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言:利用指針編寫程序,用梯形法計算給定的定積分實例

發(fā)布時間:2020-09-09 22:11:37 來源:腳本之家 閱讀:153 作者:Caleb_Sung 欄目:編程語言

題目要求

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

C語言:利用指針編寫程序,用梯形法計算給定的定積分實例

參考代碼

首先說明一下指針的用處:因為所傳遞的參數(shù)均為數(shù)字,并不需要使用指針提高效率,故這里使用指針指向函數(shù)。

請注意calc()函數(shù)中的這一語句:

double(*pfunction)() = &function;

即實現(xiàn)了我所描述的過程。

代碼如下:

#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并無太大差距。若想提高精確度可進一步提高微元分段的數(shù)量。

以上這篇C語言:利用指針編寫程序,用梯形法計算給定的定積分實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI