c - 如何在C中扫描复数数组

标签 c

int input,n,i;
    scanf("%d%d",&input,&n);
    double a,b;
    double complex arr[n];

      for (i = 0; i < n; ++i)
      {
         scanf("%lf%lf",&a,&b);
         creal(arr[i])=a;
         cimag(arr[i])=b;
       }

错误:需要左值作为赋值的左操作数在此处输入代码 真实(arr[i])=a; 为什么我不能接受复数数组的输入

最佳答案

根据6.2.5p13 ,你可以做(​​未经测试!)

double complex a[42];
double tmp[2];
tmp[0] = 3.14159;
tmp[1] = -2.71828;
memmove(a + 3, tmp, sizeof tmp); // a[3] = 3.14159 - 2.71828i

关于c - 如何在C中扫描复数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44342739/

相关文章:

c++ - 如何连接并打印字符串的每个元素?

c - 使用一些输入测试 C 程序

c - 为什么下面的代码会产生段错误

c 从文件读取输入时修剪换行符

c - 多平台(Windows、Linux 和 OSX)的反文件删除;是否可以?

通过 LED 循环

c - 将正弦波值从数组发送到音频输出

c - 如何将结构变量复制到 C 套接字程序中的缓冲区中?

c - 是否可以从 C 访问程序集中定义的变量?

c - C 中的牛顿·拉弗森