Вывести индекс строки массива с наибольшей по модулю суммой - 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;
}

Объяснение кода листинга программы

В этом коде выполняется следующее:

  1. Связывание и инициализация массива:
    • Строка 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)); устанавливает начальное значение для генератора случайных чисел на текущее время, чтобы каждый раз получать разные случайные числа.
  2. Вычисление максимальной суммы по модулю:
    • Цикл 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); с индексом строки, в которой была наибольшая сумма по модулю. Таким образом, этот код генерирует двумерный массив случайных чисел, вычисляет сумму каждой строки и находит строку с наибольшей суммой по модулю.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы