二重のみを含むリストの合計を取得する必要があります。Cのリストのすべての要素の合計
double sum(DoubleList* list) {
DoubleNode *next = NULL;
double sum = 0;
for (DoubleNode *n = list->first; n != NULL; n = next) {
sum += n->value;
}
return sum;
}
二重のみを含むリストの合計を取得する必要があります。Cのリストのすべての要素の合計
double sum(DoubleList* list) {
DoubleNode *next = NULL;
double sum = 0;
for (DoubleNode *n = list->first; n != NULL; n = next) {
sum += n->value;
}
return sum;
}
に次のようにあなたのループを修正する必要があります。
double sum(DoubleList* list) {
double sum = 0;
for (DoubleNode *n = list->first; n != NULL; n = n->next) {
sum += n->value;
}
return sum;
}
上記のサンプルコードはDoubleNode 次の命名属性を持ち、次の要素へのポインタを格納タイプDoubleNode *、であると仮定します。
あなたはあなたのループの次の要素を取得することを確認する必要があります。ただし、動作しないいくつかの理由 。私はnext
ポインタがn->next
であることを推測しています:
for (DoubleNode *n = list->first; n != NULL; n = n->next) {
sum += n->value;
}
はい、動作します。ありがとう! – NoIdea
for (DoubleNode *n = list->first; n != NULL; n = next)
変更を
for (DoubleNode *n = list->first; n != NULL; n = n->next)
2番目の反復で 'next'は' NULL'です。 – ForceBru
DoubleListの定義を提供できますか? – ilim
おそらく、 'for(DoubleNode * n = list-> first; n!= NULL; n = n-> next){'( 'n = n-> next'に気付く)のようなものです。 –