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

Подправить стек - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка выборкой. Рекурсивный метод http://www.cyberforum.ru/cpp-beginners/thread700620.html
Код моей функции, но он мне не нравится из-за трех переменных. Ненавижу что-то добавлять. Так как по заданию мне нужно было начинать с начала а не с конца, то пришлось ее ввести. Проверьте, пожалуйста. void selectionSort (int numbers, int n, int n0) //принимает такие аргументы: массив для последующей сортировки, количество элементов для сортировки, общее количество элементов массива { if (n >...
C++ Получить косинус из числа при вводе cos Как сделать чтобы я вводил cos и добывался косинус из числа #include <iostream> #include <conio.h> #include <math.h> #include <string.h> #include <stdlib.h> #define c cos; using namespace std; int main () { http://www.cyberforum.ru/cpp-beginners/thread700616.html
Получить сумму членов, принадлежащих отрезку C++
Помогите с задачей: Даны натуральное число n,действительные числа x1..xn.В последовательности x1..xn все члены,меньше двух,заменить нулями.Кроме того,получить сумму членов,принадлежащих отрезку ,а также число таких членов.
Проверка открытия файла либо работает, либо уходит в бесконечность C++
string A=Enterway('t');//функция ввода адреса файла fstream str(A.c_str(), ios::in ); for(;;){ if (!str){ cout << "ERROR!!! Файл не найден \n"; A=Enterway('t'); continue;} else break; }
C++ Бинарный файловый вывод и ввод двумерного вектора http://www.cyberforum.ru/cpp-beginners/thread700604.html
Ребят, в общем у меня вот такой вопрос) Имеются 3 объекта класса class matrix{public:vector < vector<int> > mtx; void ch_size(int n){mtx.erase(mtx.begin(), mtx.end()); mtx.resize(n+1); for(int i=1;i<=n;i++) mtx.resize(n+1); } //функции класса и т.д.
C++ Как решать эти задачи? Получить элементы, встречающиеся в массиве не более одного раза. Массив одномерный. Большая просьба делать это с помощью простейших алгоритмов. Заранее спасибо! подробнее

Показать сообщение отдельно
Peregrin
33 / 33 / 1
Регистрация: 16.11.2012
Сообщений: 59
18.11.2012, 04:53     Подправить стек
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
#include <iostream>
#include <string.h>
#include <conio.h>
const int maxlength=5;
using namespace std;
 
struct QUEUE{
      char elements[maxlength];
      int front;
      int rear;
};
      
void MAKENULL (QUEUE*);
bool EMPTY (QUEUE*);
char FRONT (QUEUE*);
void ENQUEUE (char ,QUEUE*);
void DEQUEUE (QUEUE*);
void PRINT (QUEUE*);
 
int main(){
    QUEUE Q;
    MAKENULL(&Q);                            
    char c;
    cin >> c;
    while (true){
        switch (c){
        case '1':
            {
                DEQUEUE(&Q);
                break;
            }
        case '2':
            {
                MAKENULL(&Q);
                break;
            }
        case '3':
            {
                if (FRONT(&Q) != 0)
                    ENQUEUE(FRONT(&Q),&Q);
                break;
            }
        case '=':
            {
                PRINT(&Q);
                break;
            }
        case '0':
            {
                return 0;
            }
        default:
            {
                ENQUEUE(c, &Q);
                break;
            }
        }
        cin >> c;
    }
}
 
void MAKENULL (QUEUE* Q){
    Q->front = -1;
    Q->rear = -1;
}   
   
bool EMPTY (QUEUE* Q){
    if (Q->front==-1)
        return true;
    else
        return false;
}
      
char FRONT (QUEUE* Q){
    if (EMPTY(Q)){
        cout<<"Cherga is empty";
        return 0;
    }
    else 
        return Q->elements[Q->front];
}
 
void ENQUEUE (char x, QUEUE* Q){
    if(Q->front==-1){
        Q->front=0;
        Q->rear=0;
        Q->elements[Q->rear]=x;
    }
    else if ((Q->rear+1) % maxlength == Q->front){
        Q->front = (Q->front + 1) % maxlength;
        Q->rear = (Q->rear+1) % maxlength;
        Q->elements[Q->rear] = x;
    }       
    else{
        Q->rear = (Q->rear + 1)%maxlength;
        Q->elements[Q->rear] = x;       
    }
}
     
void DEQUEUE (QUEUE* Q){
    if (EMPTY(Q))
        cout<<"Cherga is empty";
    else
        Q->front = (Q->front + 1)%maxlength;
}
 
void PRINT(QUEUE* Q){
    if (EMPTY(Q)==false){
        if (Q->rear < Q->front){
            for (int i=0; i <= Q->rear; i++)
                putchar(Q->elements[i]);    
            for (int i=Q->front; i < maxlength; i++)
                putchar(Q->elements[i]);
        }
        else
            for (int i=Q->front; i <= Q->rear; i++)
                putchar(Q->elements[i]);
        printf("\n");
    }
}
Фух, до 5 утра сидел но сделал, вот рабочий код.
 
Текущее время: 13:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru