Задача полностью сформулирована в заголовке.
Задача как бы разбивается на 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;
}