指针和结构问题
pointers and struct issues
我正在尝试添加两个多项式,
以下代码适用于多项式,如 1+2x+3x^2 和 1+x+x^2,但当添加 1+2x+3x^2 和 1+1x+x^3 时则不适用。
请注意,系数存储在动态数组中,即使该项不存在,我们也会考虑它。 即 1+1x+x^3 输入为度数:3 系数 1 1 0 1。我还需要考虑何时添加两个相互抵消的多项式。即 +3x^2+(-3x^2)=0..关于我如何思考这两种情况的任何建议。
当两个多项式的次数不同时,这不起作用的原因是循环具有未定义的行为:它继续max-1
,但max-1
处的索引仅在两个多项式中的一个上有效。
循环中的代码在访问a->coeffs[i]
之前需要检查索引i
是否小于a->degree
,并且在访问b->coeffs[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);
这样可以避免访问coeffs
数组末尾之后的数据。
相关文章:
- 如何重构类层次结构以避免菱形问题
- 包含矢量指针的结构的内存释放问题
- 在类中返回结构时出现问题
- 我对数据结构、双向链表有一些问题
- C++模板类中结构的编译器问题
- 我的超类中的模板问题与结构定义
- 修改C++结构的特征成员时出现问题
- C++ 结构内部的unordered_map会导致内存泄漏问题吗?
- 指向包含对齐 C 结构C++类的 C 指针的对齐问题
- (ODR 使用问题)在不同文件中priority_queue名称相同的结构
- 在C++中循环访问自定义结构列表的小问题
- 在C++中对结构向量进行排序时出现问题
- 我想直接在结构中插入,但没有一种方法可以正确避免填充问题
- 我的堆栈和库存清单程序的结构有什么问题?
- 将字符数组转换为结构时出现问题. 结构的字符数组变量溢出
- 我应该如何在C++中使用结构体解决输入失败的问题?
- DNS 查询格式标头结构中的小字节序问题
- C++,类结构问题
- 使用初始化列表填充C++中的多维结构数组时出现问题
- 为<vtkDataArray> VTK 非结构化网格声明 vtkSmartPointer 类型的变量时出现问题