С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 1
1

Прошу объясните код пожалуйста

26.06.2018, 00:00. Показов 663. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
 
typedef long BT;
 
struct U {
       BT Inf;
       U *N, *P;
 
       };
 
    U *V_Ochered(U *First, BT X) {
    U *Vsp;
    Vsp = (U*) malloc (sizeof(U));
    Vsp->Inf=X;
 
    if (!First) {
        Vsp->N=Vsp;
        Vsp->P=Vsp;
        First=Vsp;
    }
 
    else {
        Vsp->N=First;
        Vsp->P=First->P;
        First->P->N=Vsp;
        First->P=Vsp;
    }
    return First;
}
 
    U *Iz_Ocheredi(U *First, BT &X) {
        U *Vsp;
        X=First->Inf;
 
        if (First->P == First) {
            free(First);
            First=NULL;
        }
 
        else {
            Vsp = First;
            First = First->N;
            First->P = Vsp->P;
            First->P->N = Vsp;
            free(Vsp);
   }
  return First;
}
 
    int Pust(U *First) {
            return !First;
    }
 
U *Ochistka(U *First) {
        BT Vsp;
        while (!Pust(First)) First=Iz_Ocheredi(First, Vsp);
        return First;
}
 
 
 
 
void PrintAndAdd(BT T);
BT Min (BT A, BT B, BT C);
U * X2, *X3, *X5;
 
using namespace std;
 
int main ()
{
    setlocale(LC_ALL, "rus");
 
    BT X;
    long I, N;
    X2 = NULL;
    X3 = NULL;
    X5 = NULL;
    cout << "Сколько чисел напечатать? ";
    cin >> N;
 
    PrintAndAdd(1);
 
    for (I = 1; I <= N; I++) {
        X = Min(X2->Inf, X3->Inf, X5->Inf);
        PrintAndAdd(X);
        if (X==X2->Inf) X2=Iz_Ocheredi(X2, X);
        if (X==X3->Inf) X3=Iz_Ocheredi(X3, X);
        if (X==X5->Inf) X5=Iz_Ocheredi(X5, X);
 }
        X2=Ochistka(X2);
       X3=Ochistka(X3);
       X5=Ochistka(X5);
 
        cout << endl;
}
    void PrintAndAdd(BT T) {
        if (T!=1) {
                cout.width(6);
                cout << T;
        }
 
        X2=V_Ochered(X2, T*2);
        X3=V_Ochered(X3, T*3);
        X5=V_Ochered(X5, T*5);
}
    BT Min (BT A, BT B, BT C) {
        BT vsp;
        if (A < B) vsp=A;
 
        else vsp=B;
 
        if (C < vsp) vsp=C;
        return vsp;
}
А конкретно:
1. Что делает функция PrintAndAdd
2. Что делают строки 88-93, 95-97, 107-109

Если что, то это код к задаче: напечатать в порядке возрастания первые n натуральных чисел, в расписания которых на простые множители входят только числа (2, 3, 5).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2018, 00:00
Ответы с готовыми решениями:

объясните пожалуйста код
объясните пожалуйста код, желательно каждую строчку пояснить #include &lt;iostream&gt; #include...

Объясните пожалуйста код
#include&quot;stdafx.h&quot; #include&lt;string.h&gt; #include &lt;iostream&gt; using namespace std; const int ...

Объясните код пожалуйста
FILE* fp = NULL; char* filename = &quot;m:\\2.txt&quot;; if ((fp = fopen(filename,&quot;r&quot;)) == NULL) ...

Объясните код пожалуйста
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main(){ int n; cin...

2
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,520
Записей в блоге: 1
26.06.2018, 03:59 2
Цитата Сообщение от NamaeWa Посмотреть сообщение
Если что, то это код к задаче: напечатать в порядке возрастания первые n натуральных чисел, в расписания которых на простые множители входят только числа (2, 3, 5).
а не легче просто самому решить задачу без мозготраха с совершенно тупой и не приспособленной к пониманию программой?
0
10 / 8 / 4
Регистрация: 24.01.2017
Сообщений: 111
26.06.2018, 06:38 3
PrintAndAdd
мне кажется он проверяет, если не равно 1 то выводит
C
1
X2=V_Ochered(X2, T*2);
добавляет в очередь и возвращает указатель на начало очереди
ну думаю как то так..
0
26.06.2018, 06:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.06.2018, 06:38
Помогаю со студенческими работами здесь

объясните, пожалуйста, код
есть программа, но не до конца понятно, что она делает... #include &lt;iostream&gt; #include &lt;vector&gt;...

Объясните пожалуйста код
#include &lt;iostream&gt; template &lt;typename T&gt; struct NameOf {}; #define DEF_TYPENAME(type)...

Объясните, пожалуйста, код
bool userAgeIs16 = age == 16; if( userAgeIs16 ) { Console.WriteLine(\&quot;В этом возрасте уже...

Пожалуйста, объясните код по подробнее C++
Что делают одни или другие функции, на что стоит обратить внимание.. #include &lt;string&gt; #include...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru