N натуральных чисел являются элементами двунаправленного списка L. Вычислить Алгоритм #include <stdio.h> #include <conio.h> int v, S, N, N1; //объявляем структуру struct L { int a; L *next; L *prev; }*start, *last, *p, *p1; void add_item(int v) { //функция для заполнения двунаправленного списка L *p; if (start==NULL ) { start=new L; start->a=v; start->prev=NULL; start->next=NULL; last=start; } else{ p=new L; p->a=v; p->next=NULL; p->prev=last; last->next=p; last=p; } } int main(){ printf("vvedite kolichestvo chisel\n");//пользователь вводит количество элементов в списке scanf("%d", &N); start=NULL; last=NULL; S=0; N1=N; printf("vvedite chisla\n"); while(N>0){ //пользователь заполняет список с клавиатуры scanf("%d",&v); add_item(v); N--;} p=start; p1=last; //устанавливаем указатели на начало и конец списка соответственно while(N1>0) { //цикл подсчитывает искомую сумму S+=(p->a*p1->a); p=p->next; p1=p1->prev; N1--; } printf(" %d \n", S);//вывод результата на экран getch(); return 0; }
Ключевые слова:
списки, двунаправленные списки
|
|||||||