在C语言中,如何';重新初始化&x27;一个变量,并在while循环的每次迭代中使用它?

在C语言中,如何';重新初始化&x27;一个变量,并在while循环的每次迭代中使用它?,c,string,parsing,while-loop,C,String,Parsing,While Loop,基本上,我试图找到我正在解析的文件的每一行中所有数字的平均值。我很快就能找到解决办法了。我成功地读取了所有的数字,“加法”在第一次迭代中效果很好,但是在第一次迭代之后,这些数字被加到上一次迭代的总和中。有没有一种方法可以简单地重用同一个变量,在一次迭代后打印其值,然后将其初始化为0,并在下一次迭代中再次使用它,等等。?下面是我想要得到的示例(在伪代码中,我不要求将其打印到控制台): 以下是我现在掌握的代码: #include <stdio.h> #include <stdlib

基本上,我试图找到我正在解析的文件的每一行中所有数字的平均值。我很快就能找到解决办法了。我成功地读取了所有的数字,“加法”在第一次迭代中效果很好,但是在第一次迭代之后,这些数字被加到上一次迭代的总和中。有没有一种方法可以简单地重用同一个变量,在一次迭代后打印其值,然后将其初始化为0,并在下一次迭代中再次使用它,等等。?下面是我想要得到的示例(在伪代码中,我不要求将其打印到控制台):

以下是我现在掌握的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>


int main(int argc, char *argv[]){
    int  i = 0;
    int x = 0;
    char *token;
    char line[300];
    char s[2] = ",";
    FILE *fp = fopen(argv[1], "r");
    while(fgets(line, 299, fp)){
        token = strtok(line, s);
        while(token!=NULL){
        x = x + atoi(token);
        printf("%s\n", token);
        printf("%d\n", x);
        token = strtok(NULL, s);
    }

    }
#包括
#包括
#包括
#包括
int main(int argc,char*argv[]){
int i=0;
int x=0;
字符*令牌;
字符行[300];
字符s[2]=“,”;
文件*fp=fopen(argv[1],“r”);
而(fgets(第299行,fp)){
令牌=strtok(行,s);
while(令牌!=NULL){
x=x+atoi(令牌);
printf(“%s\n”,标记);
printf(“%d\n”,x);
令牌=strtok(空,s);
}
}

我知道我很接近,只需要一点提示。我不是要你复制和粘贴解决方案,而是要给我一个提示来帮助我完成它。谢谢。

在内部循环之前或之后添加x=0

while(fgets(line, 299, fp)){
   token = strtok(line, s);
   while(token!=NULL){
        x = x + atoi(token);
        printf("%s\n", token);
        printf("%d\n", x);
        token = strtok(NULL, s);
    }
    x=0;
}

在内部循环之前或之后添加x=0

while(fgets(line, 299, fp)){
   token = strtok(line, s);
   while(token!=NULL){
        x = x + atoi(token);
        printf("%s\n", token);
        printf("%d\n", x);
        token = strtok(NULL, s);
    }
    x=0;
}

在内部循环之前或之后添加x=0

while(fgets(line, 299, fp)){
   token = strtok(line, s);
   while(token!=NULL){
        x = x + atoi(token);
        printf("%s\n", token);
        printf("%d\n", x);
        token = strtok(NULL, s);
    }
    x=0;
}

在内部循环之前或之后添加x=0

while(fgets(line, 299, fp)){
   token = strtok(line, s);
   while(token!=NULL){
        x = x + atoi(token);
        printf("%s\n", token);
        printf("%d\n", x);
        token = strtok(NULL, s);
    }
    x=0;
}

x=0
设置在内部
之前而不是更早。将
x=0
设置在内部
之前而不是更早。将
x=0
设置在内部
之前而不是更早。将
x=0
设置在内部
之前而不是更早。W哦,这行得通。真不敢相信我还没想到呢。谢谢!没问题,你差一点就错过了一行哇。这行得通。真不敢相信我还没想到呢。谢谢!没问题,你差一点就错过了一行哇。这行得通。真不敢相信我还没想到呢。谢谢!没问题,你很外向梅莉·克洛斯刚刚错过了一行哇。这很管用。真不敢相信我竟然没有想到这一点。谢谢!没问题,你差一点就错过了一行