Обработка числового массива
Добавлено: 26 ноя 2014, 21:52
Обменять значениями строку с наибольшим числом положительных элементов со столбцом с наибольшим числом отрицательных элементов.
Код: Выделить всё
#include "Header.h"
const int n = 3, m = 3;
int main()
{
int a[n][m];
//Ввод элементов
int i = 0;
int j = 0;
while (i < n)
{
cout << "Enter 3 element of row" << (i + 1) << " -> ";
j = 0;
do
{
cin >> a[i][j];
j++;
}
while (j < m);
i++;
}
cout << endl;
//Вывод элементов
for (int i = 0; i<n; i++)
{
for (int j = 0; j<m; j++)
cout << a[i][j] <<'\t';
cout << endl;
}
cout <<" -------- \n";
int index =0; //номер столбца с максимальным кол-вом отр. эл-тов
int max=0; //максимальное кол-во отр. элементов в столбце
int count = 0; //счетчик отр. элементов текущей строки
for (int j = 0; j < m ; j++)
{
//обнуление счетчика отр. эл-тов текущего столбца
count = 0;
//увеличение счетчика если эл-нт столбца имеет отр. значение
for (int i = 0; i < n; i++)
{
if (a[i][j] < 0)
{
count++;
cout << a[i][j] << '\t';
}
}
if (count>max)
{
max=count;
index=j;
}
}
std::cout << "index = " << index << std::endl;
int ind =0; //номер строки с максимальным кол-вом положительных эл-тов
int maximym=0; //максимальное кол-во положительных элементов в столбце
int counti = 0; //счетчик положительных элементов текущей строки
for (int i = 0; i < n; i++)
{
//обнуление счетчика положительных эл-тов текущей строки
counti = 0;
//увеличение счетчика если эл-нт строки имеет положительное значение
for (int j = 0; j < m ; j++)
{
if (a[i][j] > 0)
{
counti++;
cout << a[i][j] << '\t';
}
}
if (counti>maximym)
{
maximym=counti;
ind=i;
}
}
std::cout << "ind = " << ind << std::endl;
return 0;
}