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

Подсчитать количество различных элементов в очереди и вывести их на экран - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
sam5213
0 / 0 / 0
Регистрация: 13.07.2010
Сообщений: 46
21.03.2012, 00:10     Подсчитать количество различных элементов в очереди и вывести их на экран #1
1. Подсчитать число различных элементов в очереди и вывести их на экран
2.
3.
На контрольной были эти задачи. Нужно их решить. Помогите пжл

 Комментарий модератора 
sam5213, Правила
2.4. На каждый вопрос создавайте по одной теме - это помогает избежать путаницы в ответах и облегчает поиск.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2012, 00:10     Подсчитать количество различных элементов в очереди и вывести их на экран
Посмотрите здесь:

C++ Дана строка. Подсчитать, сколько различных символов встречается в ней. Вывести их на экран.
Подсчитать количество различных по значению элементов в массиве C++
Сформировать массивы А[15] и B[10]. Вывести их на экран. Подсчитать количество ненулевых элементов и максимальные значения в обоих массивах C++
Подсчитать количество различных элементов C++
Заполнить массив А(10) случайными числами. Подсчитать и вывести на экран количество элементов массива, кратных 7 и не кратных 3 C++
C++ Подсчитать количество различных цифр и вывести их
C++ Подсчитать количество различных символов, которые не являются буквами или цифрами, и вывести их на экран
Подсчитать количество различных чисел среди элементов упорядоченного массива C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kidasov
76 / 76 / 12
Регистрация: 02.12.2011
Сообщений: 966
Записей в блоге: 3
23.03.2012, 03:32     Подсчитать количество различных элементов в очереди и вывести их на экран #2
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
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
class Queue {
    int *a;
    int length;
public:
    Queue();
    ~Queue();
    void push(int number);
    int pop();
    void show();
};
 
//конструктор
Queue :: Queue() {
    length = 0;
    a = new int[length];
}
 
//деструктор
Queue :: ~Queue() {
    delete[] a;
}
 
//добавляем элемент в очередь
void Queue :: push(int number) {
    int *newQ = new int[length + 1];
    newQ[0] = number;
    for (int i = 1; i <= length; i++) {
            newQ[i] = a[i - 1];
    }
    delete[] a;
    a = newQ;
    length++;
}
 
//берем последний элемент из очереди
int Queue :: pop() {
    int lastElem = a[length - 1];
    int *newQ = new int[length - 1];
    for (int  i = 0; i < length - 1; i++) {
        newQ[i] = a[i];
    }
    delete[] a;
    a = newQ;
    length--;
    return lastElem;
}
 
//вывести очередь на экран
void Queue :: show() {
    cout << "Our queue:" << endl;
    for (int i = 0; i < length; i++) {
        cout << a[i] << " " ;
    }
    cout << endl;
    cout << "length = " << length << endl;
}
 
int main()
{
    Queue q;
    for (int i = 0; i < 5; i++) {
        q.push(i);
    }
    q.show();
    return 0;
}
Добавлено через 13 минут
2.Стек
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
#include <iostream>
 
using std::cout;
using std::endl;
using std::cin;
 
class Stack {
    int *a;
    int length;
public:
    Stack();
    ~Stack();
    void push(int number);
    int pop();
    void show();
};
 
//Конструктор
Stack :: Stack() {
    length = 0 ;
    a = new int[0];
}
 
//Деструктор
Stack :: ~Stack() {
    delete[] a;
}
 
//Добавить первый элемент
void Stack :: push(int number) {
    int *newS = new int[length + 1];
    newS[0] = number;
    for (int i = 1; i <= length; i++) {
            newS[i] = a[i - 1];
    }
    delete[] a;
    a = newS;
    length++;
}
 
//Вытащить первый элемент
int Stack :: pop() {
    int  firstElement = a[0];
    int *newStack = new int[--length];
    for (int i = 1; i < length + 1; i++) {
        newStack[i - 1] = a[i];
    }
    delete[] a;
    a = newStack;
    return firstElement;
}
 
//Вывод стека на экран
void Stack :: show() {
    int sumCr = 0;
    cout << "Our stack:" << endl;
    for (int i = 0; i < length; i++) {
        sumCr += a[i];
        cout << a[i] << " ";
    }
    cout << endl;
    cout << "Cr arifm " << sumCr << endl;
}
 
int main() {
    Stack s;
    for (int i = 0; i < 5; i++) {
        s.push(i);
    }
    s.show();
    return 0;
}
Добавлено через 1 час 47 минут
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <iostream>
#include <cstring>
 
using std::cout;
using std::endl;
using std::cin;
using std::getline;
 
class Stack {
public:
    char *a;
    int length;
    Stack();
    ~Stack();
    void push(char s);
    int pop();
    void show();
};
 
//Конструктор
Stack :: Stack() {
    length = 0 ;
    a = new char[0];
}
 
//Деструктор
Stack :: ~Stack() {
    delete[] a;
}
 
//Добавить первый элемент
void Stack :: push(char s) {
    char *newS = new char[length + 1];
    newS[0] = s;
    for (int i = 1; i <= length; i++) {
            newS[i] = a[i - 1];
    }
    delete[] a;
    a = newS;
    length++;
}
 
//Вытащить первый элемент
int Stack :: pop() {
    int  firstElement = a[0];
    char *newStack = new char[--length];
    for (int i = 1; i < length + 1; i++) {
        newStack[i - 1] = a[i];
    }
    delete[] a;
    a = newStack;
    return firstElement;
}
 
//Вывод стека на экран
void Stack :: show() {
    cout << "stack:" << endl;
    for (int i = 0; i < length; i++) {
       cout << a[i] << " ";
    }
    cout << endl;
}
 
//функция проверки на палиндром
bool palindromString(Stack *ob, Stack *ob2, char *str) {
    int strLen = static_cast<int>(strlen(str));
    int k = 0;
    if (strLen % 2) {  //если длина строки нечетное число то для одинакового количества символов в стеках увеличиваем k
       k += 1;
    }
    for (int i = 0; i < strLen/2 + k; i++) {
        ob->push(str[i]);    }
    for (int j = strLen/2; j < strLen; j++) {
        ob2->push(str[j]);
    }
    for(int i = 0, j = ob2->length - 1; i < ob->length, j >= 0 ; i++, j--) {
        if (ob->a[i] != ob2->a[j]) return false;
    }
    return true;
}
 
int main() {
    Stack s, s2;
    char a[20];
    cout <<"Input string until 20 elements" << endl;
    cin.getline(a, 20);
    cout << endl << "Your string " << a ;
    if (palindromString(&s, &s2, a)) cout << " is palindrom" << endl;
    else cout << " is not palindrom" << endl;
    return 0;
}
Yandex
Объявления
23.03.2012, 03:32     Подсчитать количество различных элементов в очереди и вывести их на экран
Ответ Создать тему
Опции темы

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