Решение задачи на односвязный список
- Список заполняется путем ввода с клавиатуры ненулевых значений. Заполнение заканчивается, когда вводится 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;
}
Не выводит числа, только сумму