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

Вывести массив содержащий длины всех серий исходного массива - C++

Восстановить пароль Регистрация
 
Ponpon
0 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 20
09.05.2016, 10:56     Вывести массив содержащий длины всех серий исходного массива #1
Снова здравствуйте! Есть задача: "Дан целочисленный массив размера N. Назовем серией группу подряд идущих одинаковых элементов, а длиной серии - количество этих элементов (длина серии может быть равна 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
#include <iostream>
#include <cmath>
#include <conio.h>
#include <ctime> 
#include <iomanip> 
 
using namespace std;
 
int main()
{
    setlocale(0, "");
    
    int i, x;
    long int n;
    cout << "Введите размерность N матрицы... ";
    cin >> n;
    srand(time(NULL));
    double *ary = new double[n];
    *ary = n;
 
 
    for (int i = 0; i < n; i++){
        {
            ary[i] = rand() % 99 + 1;
            cout << setw(4) << ary[i];
        }
    x = 1;
    if (ary[i] == ary[i + 1])
    {
        x++;
    }
    if (ary[i] = ary[i + 1] && ary[i+1]!=ary[i+2] )
    {
        x = x + 0;
        
    }
    else (ary[i] != ary[i + 1]);
    {
        x = 1;
    }
    for (int i = 0; i < n; i++); {
        if (ary[n-1] == ary[n-2]); {
            cout << ary[n-1];
            cout << "(" << x << ")";
        }
    }
    }
    _getch();
    return 0;
}
Добавлено через 15 минут
Изменила в коде ввод элементов массива.

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
#include <iostream>
#include <cmath>
#include <conio.h>
#include <ctime> 
#include <iomanip> 
 
using namespace std;
 
#include <iostream>
 
using namespace std;
 
int main()
{
    int *ary; // указатель для выделения памяти под массив
    int i, x, size; // размер массива
 
              // Ввод количества элементов массива
    cout << "n = ";
    cin >> size;
    
 
    ary = new int[size]; // выделение памяти под массив
 
                         // заполнение массива
    for (int i = 0; i < size; i++) {
        cout << "ary[" << i << "] = ";
        cin >> ary[i];
    }
    x = 1;
    if (ary[i] == ary[i + 1])
    {
        x++;
    }
    if (ary[i] = ary[i + 1] && ary[i+1]!=ary[i+2] )
    {
        x = x + 0;
        
    }
    else (ary[i] != ary[i + 1]);
    {
        x = 1;
    }
    for (int i = 0; i < size; i++); {
        if (ary[size-1] == ary[size-2]); {
            cout << ary[size-1];
            cout << "(" << x << ")";
        }
    }
    _getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2016, 10:56     Вывести массив содержащий длины всех серий исходного массива
Посмотрите здесь:

Создать новый файл, содержащий квадраты всех элементов исходного файла C++
Создать файл целых чисел, содержащий номера всех локальных максимумов исходного файла в порядке возрастания C++
Процедура и функция: Создать другой массив, содержащий отрицательные элементы исходного массива. C++
15. В файле записаны числа. Создать новый файл, содержащий длины всех убывающих последовательностей C++
Процедуры и массив (создать, заполнить, вывести, подсчитать количество неубывающих серий) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
09.05.2016, 11:16     Вывести массив содержащий длины всех серий исходного массива #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
#include <iostream>
#include <iomanip>
#include <cstdlib>
using namespace std;
 
int main()
{
    int n;
    cout << "Введите размерность N матрицы... ";
    cin >> n;
    srand(time(NULL));
    int *ary = new int[n];
    for (int i = 0; i < n; i++){
            ary[i] = rand() % 99 + 1;
            cout << setw(4) << ary[i];
        }
        cout << endl;
        int length, index;
 
        for (int i = 0; i < n; i++){
            length = 0;
            if(ary[i]== ary[i+1]) index = i;
            while(ary[i]== ary[i+1]){
                length++;
                i++;
                if((i+1)== n) break;
            }
            if(length != 0)
            cout << "Найдено на позиции: " << index + 1 << " Длинна посдедовательности: "<<length << endl;
        }
 
 
    return 0;
}
Ponpon
0 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 20
09.05.2016, 11:30  [ТС]     Вывести массив содержащий длины всех серий исходного массива #3
Наверное работает, но рандомизация тут не проходит ибо не всегда выпадают одинаковые =) Однако, спасибо!
Ponpon
0 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 20
10.05.2016, 19:49  [ТС]     Вывести массив содержащий длины всех серий исходного массива #4
Код не работает, к слову. Попыталась преобразовать и упростить, вышло то, что представлено ниже. Однако После ввода данных в массив ВООБЩЕ ничего не происходит. Программа, кажется, зациклилась где-то, но не вижу - где.
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <conio.h>
using namespace std;
 
int main()
{
    setlocale(0, "");
    int ary[10], i;
    
    for (int i = 0; i < 10; i++)
    {
        cin >> ary[i];
    }
    cout << endl;
    int length, index;
 
    for (int i = 0; i < 10; i++) {
        length = 0;
        if (ary[i] == ary[i + 1]) index = i;
        while (ary[i] == ary[i + 1]) {
            length++;
            }
        
        for (int i = 0; i < 10; i++) 
        {
            if (ary[i] != ary[i + 1]) length = 1;
            index = i;
        }
 
            cout << "Найдено на позиции: " << index + 1 << " Длина последовательности: " << length << endl;
    }
 
    _getch();
    return 0;
}
Yandex
Объявления
10.05.2016, 19:49     Вывести массив содержащий длины всех серий исходного массива
Ответ Создать тему
Опции темы

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