Если я все правильно понял, то так:
#include <iostream>
#include <algorithm>
/*
Написать на C++:в матрице 4*5 замените на -2 столбцы с положительными суммами элементов,
а затем в качестве первого вставьте столбец из минимальных элементов соответственных строк
*/
#define N 4 // строки
#define M 5 // столбцы
int main()
{
int
matrix[N][M],
sum(0);
for(int i = 0; i < N; i++)//инициализируем матрицу.
for(int j = 0; j < M; j++)
std::cin >> matrix[i][j];
}
for(int i = 0; i < N; i++)//выводим начальную матрицу
std::cout << matrix[i][j] << " ";
std::cout << std::endl;
for(int j = 0; j < M; j++)//выполняем 1 задание
for(int i = 0; i < N; i++)
sum+=matrix[i][j];
if(sum)
matrix[i][j] += -2;
int minimal(0);
for(int i = 0; i < N; i++)//выполняем второе задание
minimal = std::min(matrix[i][0], matrix[i][M-1]);
matrix[i][0] = minimal;
p.s я не заморачивался насчет читабельности и оптимизации кода, ибо делаю не для себя. Но, по-моему, должно работать.
В противном случае пиши мне, исправлю.
#include <iomanip>
using namespace std;
int main() {
int max, index;
max = 0;
index = -1;
int arr[3][5] = { { 3, 0, 3, 0, 5} , { 5, 3, 0, 2, 0} , { 4, 0, 3, 2, 1} };
for (int i = 0; i < 3; ++i){ // вывод исх. матрицы, можешь удалить, если надо.
for (int j = 0; j < 5; ++j){
cout << setw(3) << arr[i][j];
cout << endl;
} // до этой строки вывод исх. матрицы
int tmp = 0;
for (int j = 0; j < 5; j++){ // подсчет нулей
for (int i = 0; i < 3; i++){
if (arr[i][j] == 0){
tmp++;
if (tmp > max){ // тут получаем номер столбца, в котором
max = tmp; // больше всего нулей
index = j;
tmp = 0;
cout << endl << "" << endl;
if (index != -1){
arr[i][index] = -2;
for (int i = 0; i < 3; ++i){ // вывод измененной матрицы
return 0;
Если я все правильно понял, то так:
#include <iostream>
#include <algorithm>
/*
Написать на C++:в матрице 4*5 замените на -2 столбцы с положительными суммами элементов,
а затем в качестве первого вставьте столбец из минимальных элементов соответственных строк
*/
#define N 4 // строки
#define M 5 // столбцы
int main()
{
int
matrix[N][M],
sum(0);
for(int i = 0; i < N; i++)//инициализируем матрицу.
{
for(int j = 0; j < M; j++)
{
std::cin >> matrix[i][j];
}
}
for(int i = 0; i < N; i++)//выводим начальную матрицу
{
for(int j = 0; j < M; j++)
{
std::cout << matrix[i][j] << " ";
}
std::cout << std::endl;
}
for(int j = 0; j < M; j++)//выполняем 1 задание
{
for(int i = 0; i < N; i++)
{
sum+=matrix[i][j];
}
if(sum)
{
for(int i = 0; i < N; i++)
{
matrix[i][j] += -2;
}
}
}
int minimal(0);
for(int i = 0; i < N; i++)//выполняем второе задание
{
minimal = std::min(matrix[i][0], matrix[i][M-1]);
matrix[i][0] = minimal;
}
for(int i = 0; i < N; i++)
{
for(int j = 0; j < M; j++)
{
std::cout << matrix[i][j] << " ";
}
std::cout << std::endl;
}
}
p.s я не заморачивался насчет читабельности и оптимизации кода, ибо делаю не для себя. Но, по-моему, должно работать.
В противном случае пиши мне, исправлю.
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int max, index;
max = 0;
index = -1;
int arr[3][5] = { { 3, 0, 3, 0, 5} , { 5, 3, 0, 2, 0} , { 4, 0, 3, 2, 1} };
for (int i = 0; i < 3; ++i){ // вывод исх. матрицы, можешь удалить, если надо.
for (int j = 0; j < 5; ++j){
cout << setw(3) << arr[i][j];
}
cout << endl;
} // до этой строки вывод исх. матрицы
int tmp = 0;
for (int j = 0; j < 5; j++){ // подсчет нулей
for (int i = 0; i < 3; i++){
if (arr[i][j] == 0){
tmp++;
}
}
if (tmp > max){ // тут получаем номер столбца, в котором
max = tmp; // больше всего нулей
index = j;
}
tmp = 0;
}
cout << endl << "" << endl;
if (index != -1){
for (int i = 0; i < 3; i++){
arr[i][index] = -2;
}
}
for (int i = 0; i < 3; ++i){ // вывод измененной матрицы
for (int j = 0; j < 5; ++j){
cout << setw(3) << arr[i][j];
}
cout << endl;
}
return 0;
}