Страница 1 из 1

Выборка случайного элемента из двумерного массива

Добавлено: 26 ноя 2010, 07:13
Ini
Здравствуйте. Помогите пожалуйста с решением задачи. Нужно создать двумерный массив и произвести с ним следующие операции:
Найти максимальный и минимальный элемент двумерного массива
Найти элементы массива, повторяющиеся более одного раза
Найти все отрицательные элементы в массиве, и заменить их на ноль
Сделать из массива выборку случайного элемента

Реализую так:

Код: Выделить всё

#include <stdio.h>
#include <stdlib.h>

int main()
{
int masotr [5];
	int dvumas[4][4] = 			// Определение двумерного массива
		{
			{3,6,4,-2},
			{7,2,-5,7},
			{1,-1,9,8},
			{6,-7,-4,4}
		};
	int i,k,j,v,;
printf("Что ищем?
1 – Максимальное и минимальное, 
2 – Повторы более одного раза,
3 – Все отрицательные значения,
4 – Случайный элемент");
v = 0;
while(v==0)
{
scanf("%d",&v); printf("\n");
if(v!=1&&v!=2&&v!=3&&v!=4) v=0;
}
	if(v==1)
		{
//Нахождение максимального и минимального элементов
int *maxel = &dvumas[0][0]; // Определение указателя на максимальный эл.
int *minel = &dvumas[0][0];	// Определение указателя на минимальный эл.

for( i = 0 ; i < 4 ; i++ )
{
if(dvumas[i][i] > *maxel ) maxel = &dvumas[i][i];
if(dvumas[i][i] < *minel ) minel = &dvumas[i][i];
		};
printf("Maximum: %d %c",*maxel,'\n'); 
printf("Minimum: %d %c",*minel,'\n');

		};
	if(v==2)
		{
//Нахождение элементов массива, встречающихся более одного раза
for (k=0;k<4;k++)
		for (j=0;j<4;j++)
		dvumas[masotr[k,j]]++;

for(i=0;i<5;i++)cout <<masotr[n]<<’’;
};
	if(v==3)
		{
// Найти все отрицательные элементы в массиве, и заменить их на ноль
for (k=0;k<4;k++)
		for (j=0;j<4;j++){ 
if (array[ k,j ] > 0){
array[ k,j ] = 1; 
    	} 
}
};
system("pause");
 
return 0;
}
Проблема в решении последней задачи. Не знаю как ее начать решать. Как к ней вообще подступиться? С чего начать?

Re: Выборка случайного элемента из двумерного массива

Добавлено: 26 ноя 2010, 11:13
Romeo
Используй конструкцию rand() % <some_int_value>, чтобы получить случайное число от 0 до <some_int_value> не включительно.

Re: Выборка случайного элемента из двумерного массива

Добавлено: 29 ноя 2010, 09:42
Ini
Только добрался до компьютера. А каким образом определяется <some_int_value>? В данном конкретном случае он получается будет 9, раз максимальное число в массиве 9? Или я не правильно понимаю?

Re: Выборка случайного элемента из двумерного массива

Добавлено: 30 ноя 2010, 12:19
Albor
В данном случае - это размер массива. Поскольку двумерный массив у вас 4х4, то есть 16 значений. rand() % 16 даст на выходе случайное число в диапазоне от 0 до 15 включительно. Это число используется как индекс массива, что решает поставленную задачу.