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;
}
Новые вопросы в разделе Информатика
Адинела
05.10.2022, 08:15
Гаязутдин
05.10.2022, 01:10
Алайбек
05.10.2022, 01:05
Акияма
05.10.2022, 01:00