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

Двумерный массив. Определить номер строки с самой длинной серией одинаковых элементов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Блочная сортировка массива http://www.cyberforum.ru/cpp-beginners/thread1170830.html
В данный момент пытаюсь решить задачу, требуется помощь с пунктом "А)" (остальные попробую сам). Условие: Блочная сортировка требует наличия одномерного массива положительных целых чисел, который нужно сортировать, и двумерного массива целых чисел со строками, проиндексированными от 0 до 9, и столбцами, проиндексированными от 0 до (n -1), где n — количество значений в массиве, который должен...
C++ Запись в файл Мне нужно, чтобы данная программа вывела ответ в екселевский файл. Но почему то не выходит. Файл создал прям на диске "С" с названием out_file.xls . Помогите пожалуйста. p.s прога норм работает, и ответ обычный на черном экране выводит, проблема только в записи ответа в ексель. using namespace std; fstream file; double Pi=9*3.14/5; double R1=30, R2=25, R3=50, R4=1.88, R5=15, R6=50;... http://www.cyberforum.ru/cpp-beginners/thread1170816.html
C++ Как удалить ребро в графе?
Имеется граф с N вершинами и заданный списком смежности. Требуется удалить ребро, который соединяет вершины a и b. Ребро задается отдельной переменной? И как реализовать его удаление?
Найти убывающие последовательности из четырех элементов стоящих друг за другом C++
В одномерном массиве (не менее 7 элементов) определите и выведите на экран убывающие последовательности из четырех элементов стоящих друг за другом, если они есть.
C++ Модель Изинга http://www.cyberforum.ru/cpp-beginners/thread1170796.html
Здраствуйте, помогите пож. реализовать модель Изинга. Спасибо
C++ Выбрать название динамической структуры (назвать класс) Как попроще обозвать свою динамическую структуру данных. Можно ли как-то использовать универсальное название типа MyStruct, но скромнее)) подробнее

Показать сообщение отдельно
Georguy
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 33
09.05.2014, 18:18  [ТС]     Двумерный массив. Определить номер строки с самой длинной серией одинаковых элементов
nmcf, Вот у меня была такая же идея, только не знаю, как именно ее реализовать
может быть фрагмент кода напишите, пожалуйста?

Добавлено через 5 минут
nmcf, не подскажете где в данном коде ошибка?
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
#include <iostream>
#include <limits>
#include <time.h>
 
const int chislo_strok = 5;
const int chislo_stolbcov = 5;
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    //int chislo_strok, chislo_stolbcov;
    int kolvo_stolbcov;
    int nomer_strochki = 0;
    int pred_podschet = 0;
    int dlina_pocledovatelnosti;
    int k = 1;
 
    short sort_massiv[chislo_strok];
 
    /*cout << "Введите число строк " << endl;
    cin >> chislo_strok;
 
    cout << "Введите число столбцов " << endl;
    cin >> chislo_stolbcov;
 
    int **matriza;
    matriza = new int*[chislo_strok];
 
    for (int i = 0; i < chislo_strok; i++)
        matriza[i] = new int[chislo_stolbcov];
 
    cout << endl;*/
 
    int matriza[chislo_strok][chislo_stolbcov];
 
    for (int i = 0; i < chislo_strok; i++)
    {
        for (int j = 0; j < chislo_stolbcov; j++)
        {
            matriza[i][j] = rand() % 10;
            cout << matriza[i][j] << " ";
        }
        cout << endl;
    }
 
    for (int i = 0; i < chislo_strok; i++)
    {
        for (int j = 0; j < chislo_stolbcov - 1; j++)
        {
            dlina_pocledovatelnosti = 0;
            if (matriza[i][j] == matriza[i][j + 1])
            {
                while (matriza[i][j] == matriza[i][j + 1])
                {
                    dlina_pocledovatelnosti++;
                    j++;
                }
            }
 
            if (dlina_pocledovatelnosti > pred_podschet)
            {
                //  nomer_strochki = i;
                pred_podschet = dlina_pocledovatelnosti;
            }
        }
    }
 
    for (int i = 0; i < chislo_strok; i++)
    {
        for (int j = 0; j < chislo_stolbcov - 1; j++)
        {
            if (matriza[i][j] == matriza[i][j + 1])
            {
                while (matriza[i][j] == matriza[i][j + 1])
                {
                    if (dlina_pocledovatelnosti != 0)
                    {
                        nomer_strochki = i;
                        sort_massiv[k] = nomer_strochki;
                        j++;
                    }
                    else
                        j++;
                }
            }
        }
    }
    for (k = 0; k < chislo_strok; k++)
    {
        cout << sort_massiv[k] << " ";
    }
Когда матрицу пробегаю первый раз- считаю самую длинную последовательность. А во время второго пробега- запоминаю номера строк с такой же длинной последовательностью. Записываю их в массив. Но почему-то выводит пять раз - (-13108)
 
Текущее время: 09:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru