C 参数个数可变的函数中的复数求和
我想对X个复数求和,但此代码返回: -9.3e+61+-1.9e+062iC 参数个数可变的函数中的复数求和,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
我应该改变什么才能使它工作?问题是,每次调用
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;
}