Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 指针和结构问题_C++ - Fatal编程技术网

C++ 指针和结构问题

C++ 指针和结构问题,c++,C++,我想把两个多项式相加 下面的代码适用于多项式,如1+2x+3x^2和1+x+x^2,但在添加1+2x+3x^2和1+1x+x^3时不起作用 请注意,系数存储在动态数组中,即使该项不存在,我们也会对其进行解释。i、 e1+1x+x^3作为度输入:3个系数1 1 0 1。我还需要考虑两个相互抵消的多项式的加法。i、 e+3x^2+(-3x^2)=0.关于我如何考虑这两种情况的任何建议。当两个多项式的阶数不同时,这不起作用的原因是循环具有未定义的行为:它继续到max-1,但max-1处的索引仅对这两个

我想把两个多项式相加

下面的代码适用于多项式,如1+2x+3x^2和1+x+x^2,但在添加1+2x+3x^2和1+1x+x^3时不起作用


请注意,系数存储在动态数组中,即使该项不存在,我们也会对其进行解释。i、 e1+1x+x^3作为度输入:3个系数1 1 0 1。我还需要考虑两个相互抵消的多项式的加法。i、 e+3x^2+(-3x^2)=0.关于我如何考虑这两种情况的任何建议。

当两个多项式的阶数不同时,这不起作用的原因是循环具有未定义的行为:它继续到
max-1
,但
max-1
处的索引仅对这两个多项式中的一个有效

循环中的代码需要在访问
a->coefs[i]
之前检查索引
i
是否小于
a->degree
,并且在访问
b->coefs[i]
之前检查索引
i
是否小于
b->degree

for(int i=0; i<=max; i++)
    sum[i] = (i <= a->degree ? a->coeffs[i] : 0)
           + (i <= b->degree ? b->coeffs[i] : 0);
for(inti=0;icoeffs[i]:0)
+(i?b级->系数[i]:0);

这将使您避免访问超过
coefs
数组末尾的数据。

当两个多项式的阶数不同时,这不起作用的原因是循环具有未定义的行为:它继续访问
max-1
,但
max-1
处的索引仅对这两个多项式中的一个有效

循环中的代码需要在访问
a->coefs[i]
之前检查索引
i
是否小于
a->degree
,并且在访问
b->coefs[i]
之前检查索引
i
是否小于
b->degree

for(int i=0; i<=max; i++)
    sum[i] = (i <= a->degree ? a->coeffs[i] : 0)
           + (i <= b->degree ? b->coeffs[i] : 0);
for(inti=0;icoeffs[i]:0)
+(i?b级->系数[i]:0);

这样可以避免访问超过
coefs
数组末尾的数据。

我不清楚您在问什么——也许您可以提供更多的上下文,或者提供一个示例来说明您在寻找什么?同时,请务必检查。谢谢我不清楚你在问什么——也许你可以提供更多的上下文,或者一个例子来说明你在寻找什么?同时,请务必检查。谢谢哦,我想到了合并排序,我们在那里做了类似的事情!感谢you@user2809437我发布的修复程序应该可以做到这一点——条件表达式将防止访问超过数组末尾。只需替换你的
sum[i]=a->coefs[i]+b->coefs[i]有了它,代码就可以工作了。我做了我的学位,我给了我正确的值!再次感谢你,我想到了合并排序,我们在那里做了类似的事情!感谢you@user2809437我发布的修复程序应该可以做到这一点——条件表达式将防止访问超过数组末尾。只需替换你的
sum[i]=a->coefs[i]+b->coefs[i]有了它,代码就可以工作了。我做了我的学位,我给了我正确的值!再次感谢你