09.06.2016, 09:32. Просмотров 127. Ответов 1
Привет, нужно написать програму, которая в кольцевом однонаправленом списке заменит все числа кратные 3 на ноль. Есть код, подскажите где ошибки?
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
| #include <iostream>
#include <windows.h>
#include <time.h>
using namespace std;
struct c
{
int n;
c *next;
};
int main()
{
system("cls");
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
srand(time(NULL));
int i, k1, n=10;
int A[n];
for(i = 0; i < n; i++)
{
A[i]=rand()%20-10;
}
c *begin = NULL; // вказівник на голову списку
c *last = NULL; // вказівник на поточний останній елемент списку
c *list = NULL; // вказівник на поточний елемент списку
for (int i=0; i<n; i++)
if (begin == NULL)
{
last = new c;
last->n = A[i];
last->next = begin;
begin = last;
list = last;
}
else
{
last = new c;
last->n = A[i];
last->next = NULL;
list->next = last;
list = last;
}
k1=0;
for(i = 0; i < n; i++)
{
if((A[i]%3)==1)
{
A[i]=0;
}
}
// виводимо елементи списку
list = begin;
cout <<"Список : \n";
while (list)
{
cout<<list->n<<"\n";
list = list->next;
}
//удаляємо усі елементи списку
while (begin)
{
list = begin;
begin = list->next;
delete list;
}
cout<<"Перетворений список: "<<endl;
system("pause");
delete begin;
return 0;
} |
|