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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Okswes
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 15
#1

Списки и Очереди - C++

09.03.2013, 19:08. Просмотров 267. Ответов 0
Метки нет (Все метки)

Помогите реализовать следующее задание через Списки и Очередь.
"В числовой последовательности вставить после каждого простого числа удвоенное среднее геометрическое всех элементов последовательности"

Добавлено через 1 минуту
Пишу списки. Сам додумался до этого

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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
#include <iostream>
using namespace std;
 
struct node
{
int info;
node *link;
};
 
node *k, // Рабочий указатель
*l, *r; // Левый и правый указатели
int w;
int z=0; //счетчик чисел в очереди
int sum; //произведение чисел в очереди
float g; //среднее геометрическое
 
int prost(int n)
{
int i; // Счетчик циклов
int is_prime; // Булев флаг
 
// Предположим что число является простым пока не докажем обратное
 
is_prime = true;
 
// Проверка числа, выполняя проверку делимости
// на все целые числа от 2 до sqrt(n).
 
i = 2; 
while (i <= sqrt(static_cast<double>(n))) {
// пока значение переменной i <= sqrt(n),
 
if (n % i == 0) // если значение переменной i,
// случайно делится на n
is_prime = false; // n не является простым числом
 
i++; // прибавить 1 к значению переменной i 
}
 
// Напечатать результаты
 
if (is_prime)
return 1;
else
return 0;
}
 
void add()
{
cout<<"Bведите число";
cin>>w;
 
while (!feof(stdin))
{
k = new node;
k->link = NULL;
k->info = w;
sum=sum*w;
r->link = k; // Добавление узла справа
r = k;
cout<<"Bведите число";
cin>>w;
z++;
 
}
}
 
void vivod()
{
k = l;
while (k != NULL)
{
cout<<k->info<<" ";
k = k->link;
}
cout<<"\n";
}
 
 
 
void main()
{
setlocale(LC_CTYPE,"Russian");
 
 
// Создание пеpвого узла
 
cout<<"Bведите число";
cin>>w;
k = new node;
k->link = NULL;
k->info = w;
l = r = k;
 
z=1;
sum = w;
// Построение остальных узлов очереди
 
add();
 
// Вывод содержимого очереди
 
vivod();
 
g=pow(sum,1.0/z);
 
k = l;
while (k != NULL)
{
if(prost(k->info)==1)
{
node *newnode;
newnode = new node;
newnode->link = NULL;
newnode->info = g;
r->link = newnode; // Добавление узла справа
r = newnode;
}
}
 
}
Не уверен в проверке на простые числа и вставке геометрического. Помогите...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2013, 19:08     Списки и Очереди
Посмотрите здесь:

C++ Списки. Очереди.
Списки, стеки, очереди C++
Очереди на С C++
C++ Очереди
C++ Очереди (С)
C++ Очереди
Очереди и Двусвязные списки! C++
Очереди C++
Списки. Стеки. Очереди C++
Списки, Стеки,Очереди (На сколько кусков распадется оставшаяся часть листа? ) C++
Задача на тему Стеки, очереди, деки, списки, кольца C++
C++ Немного исправить ошибки. Тема: стэки, списки, очереди. Не понимаю в чем дело

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

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

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