Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2010, 14:20   #1
Seo-optimist
 
Регистрация: 25.10.2010
Сообщений: 7
По умолчанию Максимальное из чисел встречающих в заданной матрице более одного раз

Ребята, помогите решить, очень буду благодарен.
Дана целочисленная прямоугольная матрица. Определить:
Максимальное из чисел встречающих в заданной матрице более одного раза
Seo-optimist вне форума Ответить с цитированием
Старый 25.10.2010, 15:13   #2
Xeonc
Форумчанин
 
Регистрация: 20.10.2010
Сообщений: 143
По умолчанию

Код:
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <time.h>
using namespace std;

int main()
{
	//Включаем генератор псевдослучайных чисел
	srand(time( NULL ) );
	//Задаем размеры матрицы
	const int a = 3;
	const int b = 4;
	//Задаем размер массива детектора
	const int c = 20;
	//Инициализируем матрицу
	int myMatrix[a][b];
	//Инициализируем массив детектор
	int checkRepeats[c];
	//Заполняем матрицу случайными числами в диапазоне от 1 до c
	for(int i = 0;i<a;i++)
	{
		for(int j = 0; j<b;j++)
		{
			int randomDigit = rand()%c+1;
			//Внимание! Финт ушами, сгенерированное число сохраняем для проверку уникальности, но не как ЗНАЧЕНИЕ, а как АЙДИ массива, и присваиваем при этом ноль
			//В дальнейшем, в зависимости от того, какое число будет содержаться в этой ячейке, мы будем определять, число повторяемое - или нет
			if(checkRepeats[randomDigit]<0)
							checkRepeats[randomDigit]=0;
			myMatrix[i][j] = randomDigit;
			checkRepeats[randomDigit]++;
			cout<<randomDigit<<"     ";
		}
		cout<<endl;
	}
	//Собственно находим искомое максимальное число, по принципу - если значение в массиве с индексом i < 0, значит это число не содержится в матрице
	//если значение в массиве с индексом i = 1, значит оно попалось всего 1 раз, и не удовлетворяет нашему условию
	//если значение в массиве с индексом i > 1, значит оно содержится в матрице больше 1 раза и является максимальным, 
        //т.к. мы перебираем массив задом на перед. И при нахождении максимума - выходим из цикла
	for(int i = c;i>0;i--)
	{
		if(checkRepeats[i]>1)
		{
			cout<<"Maximum Repeated Element is =" <<i;
			break;
		}
	}
	_getch();
return 0;
}
451 -870-7(три)6. Выполняю работы на заказ, гарант честности - ВМ аттестат с 60+ БЛ без претензий

Последний раз редактировалось Xeonc; 25.10.2010 в 15:24.
Xeonc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Максимальное из чисел встречающих в заданной матрице более одного раза Seo-optimist Общие вопросы C/C++ 11 25.10.2010 21:44
Удалить все слова, встречающиеся более 2 раз kat297 Общие вопросы Delphi 3 11.06.2010 16:27
число, встречающееся в матрице максимальное количество раз boing Паскаль, Turbo Pascal, PascalABC.NET 5 28.05.2010 10:25
Ввести строку, вывести на экран символы, повторяющиеся в строке более 2 раз. bibl2008 Помощь студентам 4 01.03.2009 13:30
Задача на СИ в заданной матрице поменять местами первую строку и первый столбец %( defol-777 Помощь студентам 2 14.01.2009 09:59