学校のプロジェクトのためにいくつかの関数を作成し、それらを機能させていますが、その理由がわかりません。それらは同一である必要がありますが、一方がcurrent-> linkをチェックし、もう一方がcurrent自体をチェックする場合にのみ機能します。両方のループを現在の!= NULLにするべきではありませんか?
2つの関数は、次のようにmainで呼び出されます。
customerHead = fillCart(limit, lowLevelInv); //fills linked list
totCart(customerHead, lowLevelInv);
printCart(customerHead, lowLevelInv);
これは、whileループが現在の!=NULLをチェックする場合にのみ機能します
int totCart(OrderPtr head, inventory lowLevelInv[])
{
OrderPtr current;
current = head;
int tot = 0;
while(current != NULL)
{
tot += lowLevelInv[current->itemID].cost*current->qtyReceived;
current = current->link;
}
cout<<"Cart total is: "<<tot<<endl;
return tot;
}
これは、whileループがcurrent-> link!=NULLをチェックする場合にのみ機能します
void printCart(OrderPtr head, inventory lowLevelInv[])
{
OrderPtr current;
current = head;
cout<<"you have ordered: \n";
while(current->link != NULL);
{
cout<<current->orderID<<": "<<current->qtyReceived<<" " <<lowLevelInv[current->itemID].name<<" for "<<lowLevelInv[current->itemID].cost*current->qtyReceived<<endl;
current = current->link;
}
}