С++ отсортировать строку матрицы в которой больше всего отрицательных элементов

Задача полностью сформулирована в заголовке.

Задача как бы разбивается на 2:

  • Найти ту строчку, где больше всего минимальных элементов
  • Отсортировать эту строчку.

Исходный код:

#include <locale>
#include <iostream>
#include <stdlib.h>
#include <time.h>

#define N 3

using namespace std;

void sort(int ar[], int size)
{
int temp;
for(int i = 0; i < size; i++)
for(int j = 0; j < size - i - 1; j++)
if(ar[j] > ar[j + 1])
{
temp = ar[j];
ar[j] = ar[j + 1];
ar[j + 1] = temp;
}
}

int _tmain(int argc, _TCHAR* argv[])
{
	int arr [N][N];
	int minusMax = 0, minus = 0, mindex = 0;
	setlocale(LC_ALL, "Russian");
	srand(time(NULL));
// Заполнение массива
 for (int i = 0; i < N; i++)
	{
		for (int j = 0; j < N; j++)
		{
			arr[i][j] = rand() % 100  - 50;
			cout << arr[i][j] << " ";
		}
		cout << endl;
	}
// Поиск минимальной строки
	for (int i = 0; i < N; i++)
	{
		for (int j = 0; j < N; j++)
		{
			if (arr[i][j] < 0)
			{
				minus++;
			}
		}
		if (minus > minusMax)
		{
			minusMax = minus;
			mindex = i;
		}
		minus = 0;
	}
	cout << "Минимальный индекс = " << mindex << endl;
	// Вызов функции сортировки для определенной строки. N - Длина строки
        sort(arr[mindex],N);
	for (int i = 0; i < N; i++)
	{
		for (int j = 0; j < N; j++)
		{
			cout << arr[i][j] << " ";
		}
		cout << endl;
	}
	return 0;
}

Пример работы программы

Добавить комментарий