@bernand

Как мне сделать чтоб вибирались числа из промежутка между найменшим и найбольшем в двумерном масиве?

У меня есть двумерний динамический масив и мне нужно посчитать количество елементов масива которие входять в промежутке от найменьшего елемента до найболшего вот код не знаю как сделать пробивал через индекси отслеживать не получалось ведь индекс минимального елемента иногда больше за индекс максимального
int n = 7; int m = 4;

int** arr = new int* [m];

void benef(int** arr, int n, int m) {
	srand(time(NULL));
	int cou = 0;

	int sum = 0;
	for (int i = 0; i < n; i++) {
		arr[i] = new int[m];

	}
	for (int i = 0; i < n; i++) {

		for (int j = 0; j < m; j++) {
			arr[i][j] = rand() % 100;
			cout << arr[i][j] << "\t";

		}
		cout << endl;
	}
	int min = arr[0][0];
	int max = arr[0][0];
	
	int maxii = 0;
	int maxjj = 0;

	int minii = 0;
	int minjj = 0;
	

	
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			if (max >= arr[i][j]) {
				max; 
			}
			else if (max <= arr[i][j]) {
				swap(max, arr[i][j]);
				maxii = i; maxjj = j;
			}
		}

		

	}
	

	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			if (min >= arr[i][j]) {
				swap(min, arr[i][j]);
				 minii = i;
				minjj = j;
			}
			else if (min <= arr[i][j]) {
				min;

			}
		}
	}
	cout << "max=" << max;
	cout << "min " << min;
	
	cout << "\nindex max i= " << maxii << "  index max j= " << maxjj << endl;
	cout << "index min i= " << minii << "  index min j= " << minjj << endl;
	


}
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
if (max >= arr[i][j]) {
        max; 
      }
      else if (max <= arr[i][j]) {
        swap(max, arr[i][j]);
        maxii = i; maxjj = j;
      }


ЧТО ТУТ ВООБЩЕ ПРОИСХОДИТ?
Понятно, что пытались найти индекс максимума в массиве, но тут такой бред написан...

Попробуйте сначала найти максимум тупо в одномерном массиве, а потом обобщить код на двумерный. Они только лишним циклом и отличаются же.

А дальше, вот нашли вы ваши индексы... ну и гоните цикл от меньшего индекса до большего. Можно их местами поменять, если они не в том порядке идут.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы