Форум программистов, компьютерный форум CyberForum.ru

Извлечение из списка всех нулевых елементов - C++

Восстановить пароль Регистрация
 
ALEX000
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 35
10.12.2013, 22:31     Извлечение из списка всех нулевых елементов #1
С++ Не могу никак разобраться что делаю не так. Суть заключаеться - ввожу любые елементы например 5, 10, 0 ,3, 4, 0, 8 или любые а в результате списка должен получиться числа без нулей тоесть 5, 10, 3, 4, 8. Я уже запутался что к чему, прошу вашей помощи.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#pragma agrused
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
// shablon vuzliv spusky
  typedef struct node
  {node *next;
   node *prew;
   int val;
  } LISTN,*LISTP;
  LISTP Head=NULL, End=NULL;
 
  void clear_list(LISTP&head,LISTP&end)
  {
     LISTP q;
     for(;head;)
     {
          q=head;
          head=head->next;
          delete q;
     }
     end=NULL;
  }
 
 
  void make_list(LISTP&head,LISTP&end, int n)
  {   LISTP p;
      if (head) clear_list(head,end);
      int i;
      randomize();
      for(i=0;i<n;i++)
      {
            p=new LISTN;
            p->val=random(51)-15;
            p->next=head;
            p->prew=NULL;
            if(head)head->prew=p;
            head=p;
            if(!end)end=p;
      }
  }
 
 
 void view_list(LISTP p,int f)
  {if(!p){cout<<"\n\tSpusok pyst";
          return;
         }
   while(p!=NULL)
   {cout<<p->val<<" ";
    if (f==1)p=p->next;
    else p=p->prew;
 
   }getch();
   }
 
 void delete_node(LISTP&head,LISTP&end)
  {LISTP p,q;
  int k;
  head->val>0?k=1:k=0;
  for(p=head;q=p->next;)
  if(q->val>0)
  {     ++k;
        if(k==2)
        { p->next=q->next;
          if(q->next)(q->next)->prew=p;
          else q->prew=p;
          if(!q)end->prew=p;
          delete q;
          k=0;
          }
          else p=p->next;
  }
  else p=p->next;
}
 
 int main()
 { int n;
  cout<<"\n Vvedit' razmer spuska\n\t";
  cin>>n;
  cout<<"\n Spusok mae vud:\n\n";
  make_list(Head,End,n);
  view_list(Head,1);
  delete_node(Head,End);
  cout<<"\n\n Spusok posle izmen :\n\n";
  view_list(Head,1);
  return 0;
  }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2013, 22:31     Извлечение из списка всех нулевых елементов
Посмотрите здесь:

количество и индексы всех нулевых элементов C++
Дано натуральное число n>0 и последовательнось чисел из n елементов, найти количество всех чисел которые больше за 0 и меньше за 0 C++
C++ перестановка елементов списка
Как найти количество нулевых елементов в массиве? C++
C++ Вывести начальные индексы всех елементов массива, значение которых превышает заданое значение А.
C++ Подсчитать количество нулевых елементов
Определить наибольшее из всех отрицательных значений, наибольшее из всех значений, количество нулевых значений C++
шаблон функции который принимает в параметры массив количиство елементов и должен найти сумму елементов массив C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 22:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru