Описать процедуру или функцию, которая в списке L находит сумму последнего и предпоследнего элементов (в списке содержится не менее 2-х элементов). Задание № 14. (см. "Сборник задач для начинающего программиста"). Алгоритм : #include <stdio.h> #include <stdlib.h> #include <conio.h> struct TNode { // объявляем структуру данных int n; TNode *next; } *start , *last ; void funkt1 (int m ) { // функция построения списка TNode *p; while (m!=0) { if (start==NULL) { // создаём первый элемент start= new TNode; start->n=random(100); start->next=NULL; last=start; printf(" %d ",start->n); } else { // строим остальные элементы p= new TNode; p->n=random(100); p->next=NULL; last->next=p; last=p; printf(" %d ",p->n); } m--; } return ; } void funkt2 () { // функция нахождения суммы int S=0; TNode *f; f=start; while ((f->next)->next!=NULL) // доходим до предпоследнего элемента списка f=f->next; S= f->n + (f->next)->n ; // находим сумму предпоследнего и последнего элементов printf("\n S=%d ",S); return ; } int main() { randomize (); clrscr (); int L; printf("vvedute kol-vo elementov : "); scanf("%d",&L); funkt1 (L); funkt2 (); getch(); return 0 ; }
Ключевые слова:
однонаправленный список, сумма элементов списка
|
|||||||