Вывести индекс строки массива с наибольшей по модулю суммой - C (СИ)
Формулировка задачи:
Cоздать двумерный массив из 7 строк по 4 столбца в каждой из случайных целых чисел из отрезка [-5;5]. Вывести массив на экран. Определить и вывести на экран индекс строки с наибольшим по модулю произведением элементов. Если таких строк несколько, то вывести индекс первой встретившейся из них.
Не знаю как и быть, подскажите, какие у кого идеи, может знаете как написать. Си (code::Blocks) заранее спасибо)
Решение задачи: «Вывести индекс строки массива с наибольшей по модулю суммой»
textual
Листинг программы
#include<stdio.h> const int n=7; const int m=4; int main() { int K[n][m]; srand(time(NULL)); int i,j,pr=1,max=0,mi=0; for(i=0;i<n;i++){ if(abs(pr)>max) {max=abs(pr); mi=i-1;} puts("\n"); pr=1; for(j=0;j<m;j++){ K[i][j]=(rand()%11)-5; pr=pr*K[i][j]; printf("%2d ", K[i][j]); }} printf("\nMax Ind %d",mi); return 0; }
Объяснение кода листинга программы
В этом коде выполняется следующее:
- Связывание и инициализация массива:
- Строка
const int n=7;
устанавливает размер первого измерения массива K, равным 7. - Строка
const int m=4;
устанавливает размер второго измерения массива K, равным 4. - Строка
int main()
указывает, что следующий блок кода является функцией main (основной функцией программы). - Строка
int K[n][m];
объявляет двумерный массив K размером n на m и инициализирует его значениями 0. - Строка
srand(time(NULL));
устанавливает начальное значение для генератора случайных чисел на текущее время, чтобы каждый раз получать разные случайные числа.
- Строка
- Вычисление максимальной суммы по модулю:
- Цикл
for(i=0;i<n;i++){
проходит по всем строкам массива K. - Внутри цикла находится вложенный цикл
for(j=0;j<m;j++){
, который проходит по всем столбцам массива K. - В каждой ячейке массива K вычисляется значение
K[i][j]=(rand()%11)-5;
(случайное число от -5 до 5, включительно). - Значение каждой ячейки используется для вычисления значения
pr=pr*K[i][j];
(общая сумма в строке). - Затем значение
pr
выводится на экран с помощьюprintf(
%2d, K[i][j]);
. - После прохождения всех ячеек в строке, значение
pr
сравнивается с максимальным значениемmax
. Еслиabs(pr)
большеmax
, тоmax
обновляется, аmi
запоминает индекс предыдущей строки. - После прохождения всех строк, выводится сообщение
printf(
\nMax Ind %d,mi);
с индексом строки, в которой была наибольшая сумма по модулю. Таким образом, этот код генерирует двумерный массив случайных чисел, вычисляет сумму каждой строки и находит строку с наибольшей суммой по модулю.
- Цикл
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д