Решение задачи на односвязный список

  1. Список заполняется путем ввода с клавиатуры ненулевых значений. Заполнение заканчивается, когда вводится 0. Вывести список на экран и сумму всех значений. Сумму должна вычислять отдельная функция.

#include <iostream>
using namespace std;
struct Node1 {
int d;
Node1* next;
};

void add(Node1** ppend, int dd) {
Node1 *pv = new Node1;    
if((*ppend==0))
{
pv->d = dd;
pv->next = 0;
*ppend = pv;
}    
else{
// Заполнение полей:
pv->d = dd;
pv->next = 0;
(*ppend)->next = pv;
*ppend = pv;
}
}
int main()
{   Node1* pv = 0;
    Node1* pend=0;
    int s=1;
    int sum;
    while(s!=0)
    {
        cin>>s;
        sum=sum+s;
    add(&pend, s);}
    
    while (pv) {
cout << pv->d << ' ';
pv = pv->next;
}
cout << sum;

    return 0;
}

Не выводит числа, только сумму


Ответы (0 шт):