У меня есть основной код, созданный без использования рекурсии и с.Тот, который не использует рекурсию, выведет 67 после добавления суммы всех целых чисел в связанном списке.С моей программой рекурсии кажется, что она читает второе целое число и останавливается, даже не добавляя его к первому.
Я добавил оператор печати в качестве тестера, чтобы я мог видеть, какие цифры он получал в связанном списке.
// Linked list summ - recursive
int rllsum( struct lnodetype *t )
int sum = 0;
while(t != NULL)
{
sum = t->val + sum;
printf("%d\n", t->val);
t = t->ptr;
rllsum(t);
}
return sum;
// Basic main program
int main()
struct lnodetype *h, *t;
int x, y;
// build a list
h = NULL;
for ( x = 0; x < 5; ++x )
{
t = malloc(sizeof(struct lnodetype));
t->val = n*(x+1)*(rand()%n+1)%19+1;
t->ptr = h;
h = t;
printf("%d\n", t->val);
}
t = h;
y = rllsum( t );
printf("\n%d, %d\n", y);
return 0;
Я ожидаю, что результат будет 67, но я могубыть полностью увереннымОн печатает 14 на данный момент.