c - 如何将全0设置为通过结构(C)声明的数组?

标签 c arrays struct

当我练习 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/

相关文章:

c - 返回参数不起作用 - 给我一个奇怪的错误

python - 如何将一维数组的索引传输到二维数组?

c - ‘sizeof’ 对不完整类型的无效应用

c - 如何在 EOF 后再次从标准输入读取?

c - 在 C 中,当幂设置为 1/2 时,为什么幂函数返回 1?

python - 使用一个 C 程序运行 python 脚本(不同的 python 版本)

php - 使用 foreach 循环在 codeigniter 中添加 OR WHERE 语句

java - 如何打印另一个对象数组中一个对象的 int 值?

c - 使用 fgets() 将文件中的行读取到结构数组中导致的段错误

在动态数组之间移动结构的 C 方法