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

Есть код на C и нужно его перевести на C++ - C++

Восстановить пароль Регистрация
 
Vincent_Low
0 / 0 / 0
Регистрация: 12.01.2013
Сообщений: 9
16.06.2014, 19:56     Есть код на C и нужно его перевести на C++ #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
126
127
128
129
130
131
132
133
134
#include <stdio.h>
#include <stdlib.h>
 
typedef struct node_t
{
int value;
struct node_t* next;
} TNode;
 
typedef struct queue_t
{
TNode* head;
TNode* tail;
} TQueue;
 
//-----------------------------------------------------------------------------
TQueue* Push(TQueue* queue, int value)
{
TNode* node = (TNode*) malloc(sizeof(TNode));
node->value = value;
node->next = NULL;
 
if (queue->head && queue->tail)
{
queue->tail->next = node;
queue->tail = node;
}
else
{
queue->head = queue->tail = node;
}
 
return queue;
}
//-----------------------------------------------------------------------------
int Pop(TQueue* queue)
{
int value = 0;
 
if (queue->head)
{
value = queue->head->value;
queue->head = queue->head->next;
}
 
return value;
}
//-----------------------------------------------------------------------------
int Find(TQueue* queue, int value)
{
TNode* node = queue->head;
 
int i = 0;
for (; node && (node->value != value); node = node->next)
{
i++;
}
 
return node ? i : -1;
}
//-----------------------------------------------------------------------------
void Print(const TQueue* queue)
{
const TNode* node = queue->head;
 
for (; node; node = node->next)
{
printf("%d ", node->value);
}
printf("\n");
}
//-----------------------------------------------------------------------------
 
int main()
{
TQueue queue = {NULL, NULL};
 
printf("Queue operations:\n"
" 1. Push element\n"
" 2. View list\n"
" 3. Pop element\n"
" 4. Search element\n"
" any other for quit\n");
 
int quit = 0;
int value;
 
while (!quit)
{
printf("command> ");
fflush(stdin);
 
switch (getchar())
{
case '1':
printf("element> ");
if (scanf("%d", &value))
{
Push(&queue, value);
}
break;
 
case '2':
Print(&queue);
break;
 
case '3':
printf("popped: %d\n", Pop(&queue));
break;
 
case '4':
printf("search> ");
if (scanf("%d", &value))
{
int pos = Find(&queue, value);
 
if (pos != -1)
{
printf("%d position\n", pos + 1);
}
else
{
printf("element %d not found\n", value);
}
}
break;
 
default:
quit = 1;
}
}
 
return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2014, 19:56     Есть код на C и нужно его перевести на C++
Посмотрите здесь:

Есть код нужно исправить ошибки C++
C++ Есть текст программы по C++ нужно его переделать
есть код и есть ошибка нужно найти дырку C++
C++ Нужно перевести из C# в C++, или написать код на c++ с нуля
C++ задача(есть код программы, нужно объяснить её программный код. )
C++ Транслитерировать! код есть, нужно найти ошибку
Есть код, нужно перевести на долее понятливый(простой язык) C++
C++ Перевести код с Pascal в С++(и там одна ошибка есть)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
16.06.2014, 22:23     Есть код на C и нужно его перевести на C++ #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Vincent_Low,
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
#include <iostream>
 
class TQueue
{
private:
    struct TNode {
        int value;
        TNode* next;
    };
 
    TNode* head;
    TNode* tail;
public:
    TQueue(): head(NULL), tail(NULL)
    { }
 
    void Push(int value) {
        TNode* node = new TNode;
 
        node->value = value;
        node->next = NULL;
        
        if (head && tail)
        {
            tail->next = node;
            tail = node;
        }
        else
        {
            head = tail = node;
        }
    }
    
    int Pop()
    {
        int value = 0;
        
        if (head)
        {
            value = head->value;
            head = head->next;
        }
        return value;
    }
    
    int Find(int value)
    {
        TNode* node = head;
        int i = 0;
        
        for (; node && (node->value != value); node = node->next) {
            i++;
        }
        return node ? i : -1;
    }
    
    void Print()
    {
        const TNode* node = head;
        
        for (; node; node = node->next) {
            std::cout << node->value;
            std::cout << std::endl;
        }
    }
 
};
 
int main()
{
    TQueue queue;
    
    std::cout << "Queue operations:\n" 
              <<" 1. Push element\n"
              <<" 2. View list\n"
              <<" 3. Pop element\n"
              << " 4. Search element\n"
              << " any other for quit\n";
    
    int quit = 0;
    int value;
    
    while (!quit)
    {
        std::cout << "command> ";
        fflush(stdin);
        
        switch (getchar())
        {
        case '1':
            printf("element> ");
            if (scanf("%d", &value))
            {
                queue.Push(value);
            }
            break;
        case '2':
            queue.Print();
            break;
        case '3':
            std::cout << "popped: ", queue.Pop();
            break;
        case '4':
            std::cout << "search> ";
            if (std::cin >> value)
            {
                int pos = queue.Find(value);
                if (pos != -1)
                {
                    std::cout << pos+1 << " position\n";
                }
                else
                {
                    std::cout << "element " << value << " not found\n";
                }
            }
            break;
        default:
            quit = 1;
        }
    }
    
    return 0;
}
Yandex
Объявления
16.06.2014, 22:23     Есть код на C и нужно его перевести на C++
Ответ Создать тему
Опции темы

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