当我练习 C 编程时,我发现了一个关于结构数组的问题。 特别是,我将编写一个程序来处理不同的多项式;所以我声明了一个结构“Pol”,其中包含变量“order”和数组“coefficients”。 然后我将用多项式进行 soe 运算(例如它们中的两个之和)。 问题是关于如何在结构中声明数组“系数”,因为当我想对两个多项式求和时,我想将数组的所有元素设置为 0(以解决关于两个具有不同顺序的多项式之和的问题). 我知道如何将 0 设置到 main 函数中声明的数组中(将单个值设置为 0,然后所有其他值都自动设置为 0)。 但是我怎样才能对结构做同样的事情呢?
提前感谢所有将要帮助我的人。
我公开下面的代码(未完成):
#include <stdio.h>
#include <math.h>
#define N_MAX 100
typedef struct
{
float coefficients[N_MAX];
int order;
} Pol;
void println(int n);
void readPol(Pol* pol);
int main(int argc, char const *argv[])
{
Pol p1, p2, pS;
readPol(&p1);
return 0;
}
void readPol(Pol* pol)
{
printf("Polynomial order: ");
scanf("%d", &pol->order);
println(1);
for(int i = pol->order; i >= 0; i--)
{
printf("Coefficient of x^[%d]: ", i);
scanf("%f", &pol->coefficients[i]);
}
}
void println(int n)
{
for(; n > 0; n--)
printf("\n");
}
最佳答案
初始化结构的语法类似于初始化数组的方式。您按顺序指定初始化器,将大括号放在任何嵌套的初始化器周围:
Pol p1 = { { 0 }, 0 };
关于c - 如何将全0设置为通过结构(C)声明的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53529220/