gpt4 book ai didi

c - 在 C 语言中,如何将单个变量设为 're-initialize' 并在 while 循环的每次迭代中使用它?

转载 作者:太空宇宙 更新时间:2023-11-04 07:13:03 24 4
gpt4 key购买 nike

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

1,2,3,4,5
x = 1;
x = 3;
x = 6;
x = 10;
x = 15;
15
2,3,4,5
x = 2;
x = 5;
x = 9;
x = 14;
14
etc.

这是我现在的代码:

#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);
}

}

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

最佳答案

在内部循环之前或之后添加 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;
}

关于c - 在 C 语言中,如何将单个变量设为 're-initialize' 并在 while 循环的每次迭代中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26856969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com