嗯,这是我的代码,我遇到了问题,因为我的n没有增加:
#define N 100
#define N_EQUATIONS 18 + 2
//initial values
int v = 1;
int cai = 2;
int caSR = 3;
int nai = 4;
int ki = 5;
int dvdt = 18;
double V_init = -87.5;
double Cai_init=1.0e-4;
double cansr=1.2;
double cajsr=cansr;
double CaSR_init = cansr + cajsr;
double Nai_init = 7;
double Ki_init = 145;
double u[N + 1][N_EQUATIONS + 1];
double Im[N + 1];
int main () {
int n = 0;
for ( n = 0; n <= N; n++) {
printf("n=%.18f\n", n);
u[n][v] = V_init;
//printf("t=%.18f\n", u[n][v]);
u[n][cai] = Cai_init;
//printf("cai=%.18f\n", u[n][cai]);
u[n][caSR] = CaSR_init;
u[n][nai] = Nai_init;
u[n][ki] = Ki_init;
u[n][dvdt] = 0.0;//check it
tapend[n] = 0.0;
tapstart[n] = 0.0;
}
}
对不起,如果这是一个愚蠢的问题,答案就是盯着我的眼睛......
P.S。查看新修订的代码
答案 0 :(得分:4)
您可能只是因为printf
不正确而感到困惑:
printf("n=%.18f\n", n);
应该是,例如
printf("n=%18d\n", n);
目前你只是在你的循环中打印垃圾(在你的情况下为0,似乎,但它可能是任何东西),所以这可能会给出n
没有正确递增的错误印象。
请注意,如果启用编译器警告(并且编译器警告应该始终启用),那么编译器会向您指出这个错误。始终启用编译器警告,并始终注意任何警告,了解并修复它们。