gpt4 book ai didi

c - 在C中将多个数组的元素添加到一个新数组中

转载 作者:行者123 更新时间:2023-11-30 16:48:35 25 4
gpt4 key购买 nike

我试图在将每个多项式乘以不同的常数后添加一些多项式。我已经能够设置数组并乘以常量,但是当我将不同数组(多项式)中的每个位置添加到新数组中时,我收到错误“可变大小的对象可能未初始化”并且程序无法编译。而且,无论数组的值或 c 的值是什么,乘法总是产生 0。我不确定到底出了什么问题。

如有任何帮助,我们将不胜感激

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{

FILE *fp;
fp = fopen("approximating the wronskian w/o wronskian.txt", "w");

fprintf(fp, "| c1 | c2 | c3 | value |\n");
long int f1[3]= {1, 3, 4};
long int f2[3]= {3, 4, 5};
long int f3[3]= {3, 6, 8};


for(int c1 = 0; c1 < 100; c1++)
{
for(int c2 = 0; c2 < 100; c2++)
{
for(int c3 = 0; c3 < 100; c3++)
{
for(int i = 0; i < 3; i++)
{
f1[i] *= c1;
f2[i] *= c2;
f3[i] *= c3;

int w[i] = f1[i] + f2[i] + f3[i];

fprintf(fp, "| %d | %d | %d | %ld | %ld | %ld |\n", c1, c2, c3, f1[i], f2[i], f3[i]);
}
}
}
}

fclose(fp);
return 0;
}

最佳答案

编译器认为您正在尝试定义一个大小为“i”的 int 数组,此处:

int w[i] = f1[i] + f2[i] + f3[i];

标识符“i”显然是一个动态值。所以数组的大小是动态调整的。因此它不能被初始化,编译器认为您正在尝试这样做。

我的猜测是您想用计算出的值填充一个数组。该数组应该在函数外部定义(假设您想稍后使用这些值,在“main”内使用此代码您似乎不想要;但这可能只是您发布的问题的最少代码)。您可能还希望至少将其设置为 long int,而不是 int。如果您以后不想使用这些值,只需将其打印到文件中,然后使用

long int w = ...

相反。

另外,在我看来

fprintf(fp, "|  %d  |  %d  |  %d  | %ld | %ld | %ld |\n", c1, c2, c3, f1[i], f2[i], f3[i]);
根据

与输出文件中的列标题不匹配

fprintf(fp, "|  c1  |  c2  |  c3  | value |\n");

这让我期待打印“w”而不是 fn[i]。

关于c - 在C中将多个数组的元素添加到一个新数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42916239/

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