Выборка случайного элемента из двумерного массива
Добавлено: 26 ноя 2010, 07:13
Здравствуйте. Помогите пожалуйста с решением задачи. Нужно создать двумерный массив и произвести с ним следующие операции:
Найти максимальный и минимальный элемент двумерного массива
Найти элементы массива, повторяющиеся более одного раза
Найти все отрицательные элементы в массиве, и заменить их на ноль
Сделать из массива выборку случайного элемента
Реализую так:
Проблема в решении последней задачи. Не знаю как ее начать решать. Как к ней вообще подступиться? С чего начать?
Найти максимальный и минимальный элемент двумерного массива
Найти элементы массива, повторяющиеся более одного раза
Найти все отрицательные элементы в массиве, и заменить их на ноль
Сделать из массива выборку случайного элемента
Реализую так:
Код: Выделить всё
#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;
}