C 参数个数可变的函数中的复数求和

C 参数个数可变的函数中的复数求和,c,function,sum,complex-numbers,C,Function,Sum,Complex Numbers,我想对X个复数求和,但此代码返回: -9.3e+61+-1.9e+062i 我应该改变什么才能使它工作?问题是,每次调用va_arg,它都会删除一个完整的复杂结构。因为每个循环调用它两次,所以取出两个不同的complexstruct,这是不正确的 您需要缓存结果并稍后访问成员: for (int i = 0; i < length; i++) { complex currArg = va_arg(param, complex); out.real += currArg.re

我想对X个复数求和,但此代码返回:

-9.3e+61+-1.9e+062i


我应该改变什么才能使它工作?

问题是,每次调用
va_arg
,它都会删除一个完整的
复杂结构。因为每个循环调用它两次,所以取出两个不同的
complex
struct,这是不正确的

您需要缓存结果并稍后访问成员:

for (int i = 0; i < length; i++)
{
    complex currArg = va_arg(param, complex);
    out.real += currArg.real;
    out.imag += currArg.imag;
}
for(int i=0;i
问题是,每次调用
va_arg
,它都会删除一个完整的
复杂结构。因为每个循环调用它两次,所以取出两个不同的
complex
struct,这是不正确的

您需要缓存结果并稍后访问成员:

for (int i = 0; i < length; i++)
{
    complex currArg = va_arg(param, complex);
    out.real += currArg.real;
    out.imag += currArg.imag;
}
for(int i=0;i
你知道C已经有了吗?我知道,但我想自己定义它。问题是每次调用
va_arg
,它都会去掉一个完整的
复杂结构。因为每个循环调用它两次,所以取出两个不同的
complex
struct,这是不正确的。您需要缓存结果并稍后访问成员。@NHAHDH为什么不将其添加为可接受的答案?顺便说一句,您可以使用
printf(“Sum is%.2g%+.2gi”)
输出3-2i或1.3+4.1您知道C已经有了吗?我知道,但我想自己定义它。问题是每次调用
va_arg
,它将取出一个完整的
complex
struct。因为每个循环调用它两次,所以取出两个不同的
complex
struct,这是不正确的。您需要缓存结果并稍后访问成员。@NHAHDH为什么不将其添加为可接受的答案?顺便说一句,您可以使用
printf(“总和为%.2g%+.2gi”)
输出3-2i或1.3+4.1i
for (int i = 0; i < length; i++)
{
    complex currArg = va_arg(param, complex);
    out.real += currArg.real;
    out.imag += currArg.imag;
}