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

Найдите индексы строки и столбца для элемента, с которого начинается самая длинная серия - C++

Восстановить пароль Регистрация
 
Dmitrey
0 / 0 / 0
Регистрация: 18.10.2010
Сообщений: 4
23.10.2010, 18:35     Найдите индексы строки и столбца для элемента, с которого начинается самая длинная серия #1
Задача: Определите двумерный массив, содержащий целые числа. Будем называть серией последовательность совпадающих элементов, расположенных в одной строке или одном столбце. Загрузите массив заданного размера из исходного файла. Найдите индексы строки и столбца для элемента, с которого начинается самая длинная серия. Выведите в выходной поток массив и результат вычислений (индексы и длину серии).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2010, 18:35     Найдите индексы строки и столбца для элемента, с которого начинается самая длинная серия
Посмотрите здесь:

Номер столбца, в которой находится самая длинная серия одинаковых элементов. C++
C++ Определить номер столбца матрицы, в котором находится самая длинная серия одинаковых элементов
Определить номер столбца матрицы, в котором находиться самая длинная серия одинаковых элементов. C++
Номер строки, в которой самая длинная серия одинаковых злементов C++
C++ Составить программу, которая находит номер столбца, в котором находится самая длинная серия одинаковых элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
wacos007
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 3
22.01.2014, 18:40     Найдите индексы строки и столбца для элемента, с которого начинается самая длинная серия #2
Добавлено через 43 секунды
у меня же самое задача!! ты уже сделал??
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
22.01.2014, 18:48     Найдите индексы строки и столбца для элемента, с которого начинается самая длинная серия #3
Добавлено через 1 минуту
wacos007, Наработки есть свои?
wacos007
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 3
23.01.2014, 03:37     Найдите индексы строки и столбца для элемента, с которого начинается самая длинная серия #4
cooller_94, пока нет, мне сдавали эту задачу сегодня и я должен показать послезавтра, а это мой последний шанс чтобы получить зачет!, помогй мне пожалуйста!!

Добавлено через 8 часов 33 минуты
cooller_94, вот что я сделал но не работает пока...

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
#include "stdio.h"
#include <iostream>
using namespace std;
 
int _tmain()
{
    int i; 
    int j;
    int m; //количество строк матрицы
    int n; //количество столбцов
    
    
    int maxs; //переменная для поиска максимального элемента в массиве mass
    int maxi;// номер максимального элемента в массиве mass
    printf("Vvedite kolitchestvo strok matrici\n");
    cin>>m;
    printf("Vvedite kolitchestvo stolbcov matrici\n");
    cin>>n;
    float **matrix=new float*[m];//Эта и следующие две строки кода используются для объявления двумерного массива по принципу "массив массивов"
    for(i=0;i<=m-1;i++)
        matrix[i]=new float[n];
    printf("Zapolnite matricu\n");
    for(i=0;i<=m-1;i++) //ввод элементов матрицы
        for(j=0;j<=n-1;j++)
        {
            printf("[%d,%d]: ",i,j);
            cin>>matrix[i][j];
        }
        
    
 
    int *mass=new int[m]; // присвоение указателю ссылки на первый элемент вспомогательного массива mass, элементами которого являются количество повторяющихся элементов в строке матрицы
    for(i=0;i<=m-1;i++) //цикл в котором производится анализ отсортированных строк матрицы и запись в mass количества повторяющихся элементов этих строк
    {
        mass[i]=1;
        for(j=0;j<=n-2;j++)
        {
            if(matrix[i][j]==matrix[i][j+1]) mass[i]++;
        }
    }
    maxs=mass[0];
    maxi=0;
    for(i=1;i<=m-1;i++)//определение максимальной серии повторяющихся элементов
        if(mass[i]>maxs)
        {
            maxs=mass[i];
            maxi=i;
        }
    if(maxs==1) printf("No series of equal elements");
    else
    printf("%d stroka imeet maximalnuyu seriyu elementov ravnuyu %d\n",maxi,maxs);
    getchar();
return 0;
}
noname_club
 Аватар для noname_club
100 / 88 / 9
Регистрация: 01.05.2013
Сообщений: 563
23.01.2014, 06:21     Найдите индексы строки и столбца для элемента, с которого начинается самая длинная серия #5
C++
1
2
3
float **matrix=new float*[m]
    for(i=0;i<=m-1;i++)
        matrix[i]=new float[n];
интересно а что с освобождением памяти?

например чтобы освободить одномерный нужно:
C++
1
2
3
4
5
int *mass = new int[12];
 
// << bla bla
 
delete [] mass; // << память освобождена полностью
а что делать в этом случае ?
C++
1
2
3
float **matrix=new float*[m];
for(i=0;i<=m-1;i++)
        matrix[i]=new float[n];
???

может так?

C++
1
2
3
4
for(i=0;i<=m-1;i++) {
   delete [] matrix[i];
}
delete [] matrix;
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
23.01.2014, 12:31     Найдите индексы строки и столбца для элемента, с которого начинается самая длинная серия #6
Цитата Сообщение от Dmitrey Посмотреть сообщение
Найдите индексы строки и столбца для элемента, с которого начинается самая длинная серия.
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
int indexLine,indexColumn;
int tmpIndex,k,max = 0,i = 0,j;
while (i<size)
{
    j = 0;
    while (j<size-1)
    {
        if (a[i][j]==a[i][j+1])
        {
            tmpIndex = j;
            k = 1;
            while (j<size-1 && a[i][j]==a[i][j+1])
            {
                ++j;
                k++;
            }
            if (k>max)
            {
                indexLine = i;
                indexColumn = tmpIndex;
                max = k;
            }
        }
        else ++j;
    }
    i++;
}
j = 0;
while (j<size)
{
    i = 0;
    while (i<size-1)
    {
        if (a[i][j]==a[i+1][j])
        {
            tmpIndex = i;
            k = 1;
            while (i<size-1 && a[i][j]==a[i+1][j])
            {
                ++i;
                ++k;
            }
            if (k>max)
            {
                max = k;
                indexLine = tmpIndex;
                indexColumn = j;
            }
        }
        else ++i;
    }
    j++;
}
std::cout <<"[" <<indexLine <<"][" <<indexColumn <<"]\n"
         <<"Length of series: " <<max <<'\n';
Yandex
Объявления
23.01.2014, 12:31     Найдите индексы строки и столбца для элемента, с которого начинается самая длинная серия
Ответ Создать тему
Опции темы

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