For循环不能在C ++中工作

时间:2014-09-30 08:05:58

标签: c++ for-loop

嗯,这是我的代码,我遇到了问题,因为我的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。查看新修订的代码

1 个答案:

答案 0 :(得分:4)

您可能只是因为printf不正确而感到困惑:

printf("n=%.18f\n", n);

应该是,例如

printf("n=%18d\n", n);

目前你只是在你的循环中打印垃圾(在你的情况下为0,似乎,但它可能是任何东西),所以这可能会给出n没有正确递增的错误印象。

请注意,如果启用编译器警告(并且编译器警告应该始终启用),那么编译器会向您指出这个错误。始终启用编译器警告,并始终注意任何警告,了解并修复它们。

相关问题