大学の課題で困ってます。
Posted: 2012年2月01日(水) 16:00
大学の課題でプログラムを組んでいます。ループがうまくいかないので教えて下さい。
オイラー法のプログラムです。
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
double t=0;
double tmax=3;
double h=0.01;
double *x;
int i=0;
x=(double*)malloc(sizeof(double) * tmax/h);
x[0]=0; //x(0)=0を代入
while(t<tmax){
if(i+1!=tmax/h)
x[i+1]=x+2*t*h;
printf("x(%d)=%.3f 厳密解 %.3f %f\n",i,x,pow(t,2),t);
i++;
t+=h;
}
free(x);
return 0;
}
while(t<tmax)のとこですがtmax=3なのですがt=3なのにもかかわらず処理をしてしまいます。
オイラー法のプログラムです。
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
double t=0;
double tmax=3;
double h=0.01;
double *x;
int i=0;
x=(double*)malloc(sizeof(double) * tmax/h);
x[0]=0; //x(0)=0を代入
while(t<tmax){
if(i+1!=tmax/h)
x[i+1]=x+2*t*h;
printf("x(%d)=%.3f 厳密解 %.3f %f\n",i,x,pow(t,2),t);
i++;
t+=h;
}
free(x);
return 0;
}
while(t<tmax)のとこですがtmax=3なのですがt=3なのにもかかわらず処理をしてしまいます。