Все
Математика
Алгебра
Геометрия
Литература
Русский язык
Истоки
Краеведение
Французский язык
Литературное чтение
Астрономия
Природоведение
Родной край
Немецкий язык
Технология
Физика
Английский язык
Обществознание
Химия
Биология
История
О`zbek tili
Окружающий мир
Естествознание
География
Украинский язык
Информатика
Украинская литература
Казахский язык
Физкультура и спорт
Экономика
Музыка
Право
Белорусский язык
МХК
Кубановедение
ОБЖ
Психология
Кыргыз тили
Другие предметы
Показать все предметы
Эвел
28.01.2022, 13:20
Информатика

C++ Заполнить двумерный числовой массив С(6, 6) целыми числами. Найти столбец с наибольшим произведением элементов

и поменять его местами с первым столбцом.
Знаешь ответ?

Чтобы оставить ответ, или зарегистрируйтесь.

Ответ или решение 1
Сумьян
#include <stdio.h> // printf
#include <stdlib.h> // rand
#include <time.h>
#define M_SZ 6
#define N_SZ 6
int main()
{
int i, j, index, mul=0, tmp;
int array[M_SZ][N_SZ];
time_t t;
srand((unsigned) time(&t));
for(i=0; i<M_SZ; i++) //записываем в массив случайные числа
for(j=0; j<N_SZ; j++)
array[i][j] = rand()%10; // не превышающие 10
for(i=0; i<M_SZ; i++) { // выводим массив в виде таблички
for(j=0; j<N_SZ; j++)
printf("%-6d", array[i][j]);
printf("\n");
}
printf("\n");
for(j=0; j<N_SZ; j++) { // делаем проход по столбцам
tmp = 1;
for(i = 0; i < M_SZ; i++) // делаем проход по строкам i
tmp *= array[i][j]; // столбца j и вычисляем произведение
if(tmp > mul) { // если произведение для данного столбца
mul = tmp; // больше предыдущих
index = j; // запоминаем его номер
}
printf("%-6d", tmp); // выводим произведения для отладки
}
printf("\n\n");
if( index != 0 ) // если найденный столбец не является первым
for(i = 0; i<M_SZ; i++) { // меняем его с первым
tmp = array[i][0];
array[i][0] = array[i][index];
array[i][index] = tmp;
}
for(i=0; i<M_SZ; i++) { // выводим массив в виде таблички
for(j=0; j<N_SZ; j++)
printf("%-6d", array[i][j]);
printf("\n");
}
return 0;
}