#include<stdio.h>
float f(float x){
return 4/(1+x*x);
}
int main(){
float a; /* 積分区間左端 */
float b; /* 積分区間右端 */
float h; /* 分割幅 */
float r; /* 積分結果 */
float x; /* 積分範囲変数 */
int n; /* 分割数 */
int i; /* カウンタ変数 */
printf("積分区間の左端を入力してください\n");
scanf("%f",&a);
printf("積分区間の右端を入力してください\n");
scanf("%f",&b);
n = 2048; /* 分割数 */
i = 0; /* カウンタ変数の初期化 */
r = 0.0; /* 積分結果の初期化 */
h = (b - a) / n; /* 分割幅計算 */
while(i <= n){
x = ((h * i) + (h * i + h)) / 2;
r = r + f(x);
i++;
}
r = h * r;
printf("関数f(x)の区間[%f, %f]における積分値は%fです。\n",a,b,r);
return 0;
コメント