top
課題;収束計算法を使って計算せよ。。。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
mainの中で使う関数の定義。。。
一番上に持ってこないと走らないみたいです。。。
/***********************************************/
float z(float ss)
{
float fx;
fx=ss*ss+2*ss+1;
return fx;
}
/*************************************************/
次のも定義
/**************************************************/
float hensuu(int wake,float bunkatu,float ss)
{
int kosuu=0;
float kosuuwa=0.0;
while(kosuu
{
kosuuwa+=0.5*(z(ss)+z(ss+bunkatu))*bunkatu;
kosuu+=1;
ss+=bunkatu;
}
return kosuuwa;
}
/***************************************************/
int main()
{
/*変数を決めた*/
int wake=1;
float ss,bunkatu,s,g,deruta,sa,a,aa;
printf("start=");
scanf("%f",&s);
printf("goal=");
scanf("%f",&g);
printf("wakeru=");
scanf("%i",&wake);
printf("gosa=");
scanf("%f",&deruta);
ss=s;
bunkatu=(g-s)/wake;
a=hensuu(wake,bunkatu,ss);
wake=2;
bunkatu=(g-s)/wake;
ss=s;
aa=hensuu(wake,bunkatu,ss);
sa=aa-a;
sa=fabs(sa);
/*繰り返す*/
while(deruta<sa)
{
wake*=2;
ss=s;
bunkatu=(g-s)/wake;
a=hensuu(wake,bunkatu,ss);
sa=aa-a;
sa=fabs(sa);
aa=a;
}
printf(" goukei = %f=%e\n",aa,aa);
return (EXIT_SUCCESS);
}
実行結果