0
我想要做的第一步是檢查deg並將其置於最低到最高...然後執行第二次通過並且執行coef並將其從最低到最高。C++合併兩個通道以顯示從最低到最高的多項式
我得到段錯誤。我想知道,如果兩個if語句,甚至有可能
Poly merge(Poly* plist1,Poly* plist2){
Term **pp;
Poly merged,list1,list2;
merged = new_Term(); //function for new term in another file
list1 = *plist1;
list2 = *plist2;
pp= &merged;
while(list1 != NULL && list2 != NULL){
if(list2->deg < list1->deg)
{
*pp = list1;
list1 = list1->next;
(*pp)->next = NULL;
}
else
{
*pp = list2;
list2 = list2->next;
(*pp)->next = NULL;
}
if(list2->coef < list1->coef)
{
*pp = list1;
list1 = list1->next;
(*pp)->next = NULL;
}
else
{
*pp = list2;
list2 = list2->next;
(*pp)->next = NULL;
}
pp = &((*pp)->next);
}
if(list1 != NULL)
*pp = list1;
if(list2 != NULL)
*pp = list2;
*plist1 = NULL;
*plist2 = NULL;
return merged;
}
爲什麼不排序呢?這似乎有點多餘。 – Annabelle
您可能會遇到分段錯誤,因爲它似乎(對我)應該檢查* pp-> next/pp值以驗證它不爲空。 – M4rc
刪除棄用的作業標籤 –