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

Заменить каждую серию, длина которой больше k, на один наименьший элемент массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Узнать, что программа вылетала с необработанным исключением http://www.cyberforum.ru/cpp-beginners/thread1209034.html
Как это сделать? Она все еще висит в процессах, и простым их мониторнгом не отделаться
C++ Не получается скомпилировать файл Здравствуйте, я только начинаю разбираться с С++ и написав пару "приветмиров" и решил попробовать выводить инфу не через cout, а через псевдографический интерфейс. Нашёл в гугле библиотеку ncurses. Сделал вот такой маленький файлик main.cpp #include <iostream> #include <ncurses.h> using namespace std; int main(int argc, char *argv) { initscr(); /* Start curses mode ... http://www.cyberforum.ru/cpp-beginners/thread1209024.html
Не записывает в файл? C++
Не записывает результат преобразования в файл, пожалуйста помогите! #include <stdio.h>//Подключение библиотеки стандартного ввода-вывода; #include <conio.h>//Подключение библиотеки консольного ввода-вывода; #include <iostream>//Подключение библиотеки потокового ввода-вывода; #include <locale.h>// Подключение библиотеки локализации #include <fstream>//Подключение библиотеки работы с...
Комплексные числа. Что означает "перевод в полярные координаты"? C++
Разработать класс Complex – комплексные числа. Реализо-вать операции: сложения, умножения комплексных чисел, умножения реальных чисел на комплексные и наоборот, нахождения реальной и мнимой части числа, перевода в полярные координаты. #include <iostream> #include <conio.h> using namespace std; class Complex { public: void Init(int rl, int im = 0); // èíèöèàëèçèðîâàòü void...
C++ Как, создав переменную класса string, вывести ее последнюю букву на экран http://www.cyberforum.ru/cpp-beginners/thread1209004.html
Если нужно обратиться к определенному символу слова, то можно использовать это: string s = "string"; char ch = s;//contains 's'Но в моем случае я знаю кол-во символов, но я не могу вывести последнюю букву слова на экран, потому что я не знаю индекс последнего символа. string Slovo1Gamer; cout << "Vvedite 1 Gamer slovo"; cin >> Slovo1Gamer; string Slovo2Gamer; int b = sizeof...
C++ 2 простые программы 1.Написать приложение с использованием структуры, описывающей координаты точки на плоскости(х,у) реализовать ввод координат 2-х точек, и вывод длинны отрезка между ними. 2. Объявить и реализовать класс Score, включающий: Конструктор, деструктор, закрытую переменную m_curscore (текущий значение на счету), открытую функцию GetScore (считывающую текущий баланс), открытую функцию... подробнее

Показать сообщение отдельно
Gulch
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 3
15.06.2014, 22:53     Заменить каждую серию, длина которой больше k, на один наименьший элемент массива
3. Дан массив, состоящий из n элементов. Назовем серией группу подряд идущих одинаковых элементов, а длиной серии – количество этих элементов (длина серии больше 1). Заменить каждую серию, длина которой больше k, на один наименьший элемент массива. Если таких серий нет, то массив оставить без изменений.
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
#include <cstdio>
char name[] = "d:\\data\\serii.txt";
char fname2[] = "d:\\data\\serii_out.txt";
 
int readDataToArray(int * arr, int size, char * fn)
{
    FILE * file = fopen(fn, "rt");
    if (!file)
    {
        printf("Error: file not opened!");
        return 0;
    }
 
    int dataSize;
    fscanf(file, "%d", &dataSize);
 
    if (dataSize > size) dataSize = size;
 
    for (int i(0); i<dataSize; ++i)
    {
        fscanf(file, "%d", &arr[i]);
        if (feof(file) && i<dataSize-1)
        {
            printf("Error: file is incorrect!");
            return 0;
        }
    }
 
    fclose(file);
    return dataSize;
 
}
 
int processArray(int * src, int src_sz,
                 int * dest)
{
    int lenght(1), K(0), j(1),larr[100];
    int minItem = src[0];
    for(int i(0); i<src_sz; ++i)                //нахождение
        {                                              //минимального элемента.
            if (src[i] < minItem) minItem = src[i];
        }
     for(int i(0); i<src_sz; i++)
        {
         if(src[i]==src[i+1])
         {
             ++lenght;
         }
         else
         {
             larr[i]=lenght;
         }
         }
}
 
void printArray(int * arr, int sz)
{
    printf("[");
    for (int i(0); i<sz; ++i)
        printf("%6d ", arr[i]);
    printf("  ]\n");
 
    printf("Size: %d\n", sz);
}
 
void ArrayToFile(int * arr, int sz, char * fn )
{
    FILE * file;
    file = fopen(fn, "wt");
 
    if (!file)
    {
        printf("Error: file not opened!");
        return;
    }
 
    fprintf(file, "[");
    for (int i(0); i<sz; ++i)
        fprintf(file, "%6d ", arr[i]);
    fprintf(file, "  ]\n");
 
    fprintf(file, "Size: %d\n", sz);
 
    fclose(file);
 
}
 
int main()
{
    const int nmax=200;
 
    int array1[nmax];
 
    int dsize=readDataToArray(array1, nmax, fname);
 
    if(dsize==0)
        return -1;
 
    int array2[100];
 
    int arr2ActSz;
    arr2ActSz = processArray(array1, dsize, array2);
 
    if (!arr2ActSz)
        return -2;
 
    printArray(array1,dsize);
    printArray(array2, arr2ActSz);
 
 
    ArrayToFile(array2, arr2ActSz, fname2);
 
    return 0;
}
Добавлено через 9 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int processArray(int * src, int src_sz,
                 int * dest)
{
    int lenght(1), K(0), j(1),larr[100];
    int minItem = src[0];
    for(int i(0); i<src_sz; ++i)                //нахождение
        {                                              //минимального элемента.
            if (src[i] < minItem) minItem = src[i];
        }
     for(int i(0); i<src_sz; i++)
        {
         if(src[i]==src[i+1])
         {
             ++lenght;
         }
         else
         {
             larr[i]=lenght;
         }
         }
}
Вот эта часть недописанная. Алгоритм не могу точно определить.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru