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);
}
実行結果