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

Нахождение номера столбца с максимальной серией одинаковых элементов в двумерном массиве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не компилируется программа: значения функции Y(x), суммы S(x) и |Y(x)–S(x)| http://www.cyberforum.ru/cpp-beginners/thread663718.html
Имеется такая задача: Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры. Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в...
C++ Скругление углов у окна Ребят подскажите пожалуйста как у окна (WinAPI) скруглить углы? http://www.cyberforum.ru/cpp-beginners/thread663716.html
Что за подсказки появляются после напечатанного в коде "std" C++
Есть 3 файла #include <iostream> #ifndef move_h #define move_h namespace nm_move_ { class Move__
Написать программу для вычисления длины окружности и площади круга C++
Написать программу, получающую double r и вычисляющую: длину окружности радиуса r и площадь круга радиуса r. Вычисление числа пи производить с помощью стандартных математических функций asin, acos, atan. При этом нужно учитывать следующие соот-ношения: arcsin1=пи/2, arccos0=пи/2, arctg1=пи/4. Подскажите пожалуйста!
C++ Как узнать адрес указателя на char? http://www.cyberforum.ru/cpp-beginners/thread663692.html
Например, вот есть массив символов и указатель. И указателю присваиваем адрес этого массива. А как узнать адрес самого указателя? char animal = "bear"; char *ps = animal; Я пробовал что-то вроде этого делать, только ничего не получается. Он показывает адрес массива. cout << (int *)ps;
C++ Обход графа в глубину Помогите, пожалуйста! Необходимо написать программу, которая показывала бы вершины, получаемые при обходе графа в глубину. подробнее

Показать сообщение отдельно
ekost
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 31

Нахождение номера столбца с максимальной серией одинаковых элементов в двумерном массиве - C++

05.10.2012, 10:09. Просмотров 2212. Ответов 4
Метки (Все метки)

Подскажите чайнику: Сейчас учусь на заочке на первом курсе, изучаю С++.
задача такая:
1. В целочисленном двумерном массиве найти количество строк с нулевыми элементами (решено самостоятельно с легкостью.
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
//Лабораторная работа 5 - работа с многомерными массивами
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
 
void main() {
  const int nrow=3, ncol=5;
    int a [nrow] [ncol], //Матрица 
    b [ncol], // Дополнительный массив
    i, j,// индексы столбцов и строк матрицы
    sum, // Счетчик нулевых элементов
    temp; // Счетчик повторяющихся элементов
            
    clrscr();
        
    // Заполнение матрицы элементами
    cout <<"Введите элементы массива:"<<endl;
    for (i=0; i<nrow; i++)
        for (j=0; j<ncol; j++)
            cin>>a[i] [j];
            
    cout<<"Для продолжения работы нажмите любую клавишу \n";
    getch();
 
    clrscr();
        
    // Распечатка матрицы
    cout<<"       Введенная матрица"<<endl;
    for (i=0; i<nrow; i++)
       { 
        for (j=0; j<ncol; j++)
        cout<<setw (5)<<a [i] [j];
            cout<<endl;
    }
    
    // Подсчет строк с нулевым элементом
    sum=0;
    for (i=0; i<nrow; i++) 
        for (j=0; j<ncol; j++)
                {
        if (a[i][j]==0) {sum++; break;}
        }
    
    //Вывод результатов подсчета строк с нулями
    if (sum!=0) cout<<"Количество строк с нулевыми элементами = "<<sum<<endl;
        else cout<<"Строк с нулевыми элементами нет.\n\n";
     
    
    // Подсчет серии одинаковых элементов  - То, что не смог решить 
  temp=0;
   for (i=0; i<(nrow-1); i++)
   {
        for (j=0; j<ncol; j++)
        { 
         if (a[i][j]==a[i+1][j])
            temp++;
              b[j]=temp; // Что то не так сделал, либо скобки не так расставил, либо пропустил какой то элемент
        }
      temp=0;
   } 
       
     
     //контрольная распечатка
     for (j=0; j<ncol; j++)
    cout<<b[j]<<"  "; // заполнения одномерного массива значениями максимальных повторяющихся элементов программа выводит левые цифры. Тестировал заполняя матрицу единицами, на выводе - ряд цифр от 6  до 11
 
// Потом допишу определение индекса элемента массива с максимальным значением
  
    getch();
    
}
Код я предоставил, с подробными комментариями.

Что не получается - программа вместо того, чтобы вывести на контрльную распечатку одномерный массив с максимальными значениями повторяющихся элементов ( с целью выявления индекса максимального элемента) выводит левые цифры.
В частности, при тестировании - заполнял массив единицами, программа выводит ряд чисел от 6 до 11.
Подскажите, что я не так сделал?
Подозреваю, что не ввел какой то еще оператор + неправильно расставил фигурные скобки.

Надеюсь на помощь.

Добавлено через 13 часов 11 минут
Что, никто ничего не подскажет? Я второй день бьюсь, программу прарктически всю написал, но дальше - мозгов не хватает...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru