Вывести на экран индекс строки матрицы с наибольшим по модулю произведением элементов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

В общем такая проблема: Cоздать двумерный массив из 7 строк по 4 столбца в каждой из случайных целых чисел из отрезка [-5;5]. Вывести массив на экран. Определить и вывести на экран индекс строки с наибольшим по модулю произведением элементов. Если таких строк несколько, то вывести индекс первой встретившейся из них. Вот мои наработки.
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main ()
{   int i,j;
    int mas [4][7];
    int ind = 0;
    int sum = 0;
    int max = 0;
    for (i = 0; i < 4; i++);{
    sum  = 0;
       for (j = 0; j < 7; j++);{
           mas[i][j] = rand () % -5,5;
           sum += mas [i][j];}
       if (sum > max)
       {
           max = sum;
           ind = i;
       }
    }
    printf ("index naibolshei stroki :\n");
    printf ("%d\n", max);
    printf ("summa ee elementov ravna\n");
    printf ("%d\n", ind);
    return 0;
}
Работает не корректно, можете помочь?

Решение задачи: «Вывести на экран индекс строки матрицы с наибольшим по модулю произведением элементов»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main() {
    char a[7][4], i = 0, j, ind = 0;
    int p, max = 1;
 
    srand((int)time(0));
    while (i < 28) {
        printf("%3d", *(*a + i++) = rand() % 11 - 5);
        if (!(i % 4))
            putchar('\n');
    }
    for (i = 0; i < 4; i++)
        max *= a[0][i];
    for (i = 1; i < 7; i++) {
        p = 1;
        for (j = 0; j < 4; j++)
            p *= a[i][j];
        if (p > max || -p > max) {
            max = p;
            ind = i;
        }
    }
    printf("%d", ind);
}

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

Вывод на экран индекса строки матрицы с наибольшим по модулю произведением элементов осуществляется следующим образом:

  1. Создается матрица случайных чисел размером 7x4.
  2. Перебираются все строки матрицы, начиная с первой.
  3. Для каждой строки находится произведение всех ее элементов.
  4. Если произведение текущей строки больше или равно по модулю наибольшему найденному до этого произведению, то обновляется значение индекса строки с наибольшим произведением.
  5. В конце программы выводится на экран найденный индекс.

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

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