Дана действительная матрица размера m*n. Найти сумму наибольших значений элементов ее строк. - C (СИ)

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

Написать программу по заданию:Дана действительная матрица размера m*n. Найти сумму наибольших значений элементов ее строк.Необходимо написать программу в 2-х вариантах:с использованием указателей и без использования указателей. Примеры:1:Найти максимальную сумму элементов строк матрицы 3*5.Пример программы без использования указателей:
#include <stdio.h>
void main()
{
int a[3][5], i, j, s, max;
printf (“Введите 3 строки по 5 чисел”);
for (i=0;i<3;i++)
 for (j=0;j<5;j++)
  scanf("%d",&a[i][j]);
printf (“Матрица а :\n”);
 for (i=0; i<3; i++)
  {for (j=0; j<5; j++)
    printf (“%5d”, a[i][j]);
    printf (“\n”);
  }
for(i=0;i<3;i++)
  {s=0;
    for (j=0;j<5;j++)
      s+=a[i][j];
    if (i==0) max=s;
    else if (max<s) max=s;
  }
printf("Максимальная сумма строки = %d",max);
}
2:Найти максимальную сумму элементов строк матрицы 3*5. Пример программы с использованием указателей:
#include <stdio.h>
void main()
{
int a[3][5], *Р, i, j, s, max;
printf (“Введите 3 строки по 5 чисел”);
for (i=0;i<3;i++)
 for (j=0;j<5;j++)
  scanf("%d",&a[i][j]);
printf (“Матрица а :\n”);
 for (i=0; i<3; i++)
  {for (j=0; j<5; j++)
    printf (“%5d”, a[i][j]);
    printf (“\n”);
  }
P=&a[0][0];
for(i=0;i<3;i++)
  {s=0;
    for (j=0;j<5;j++)
      {s+=*P;
        P++;
      }
    if (i==0) max=s;
    else if (max<s) max=s;
  }
printf("Максимальная сумма строки = %d",max);
}
Работаем в проге Borland C++

Код к задаче: «Дана действительная матрица размера m*n. Найти сумму наибольших значений элементов ее строк. - C (СИ)»

textual
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void)
{
    srand(time(NULL));
    int **arr;
    int cols, rows;
    int i, j;
    int sum = 0;
    size_t posMax = 0;
   
    scanf("%d%d", &rows, &cols);
    arr = (int**)malloc(rows * sizeof(int*));
    for(i = 0; i < rows; ++i)
    {
        *(arr + i) = (int*)malloc(cols * sizeof(int));
        for(j = 0; j < cols; ++j)
        {
            *(*(arr + i) + j) = rand() % 21;
            printf("%d\t", *(*(arr + i) + j));
            if(*(*(arr + i) + j) > *(*(arr + i) + posMax))
                posMax = j;
        }
        sum += *(*(arr + i) + posMax);
        posMax = 0;
        printf("\n");
        free(*(arr + i));
    }
    printf("sum max elements in each row = %d\n", sum);
    free(arr);
    return 0;
}

10   голосов, оценка 4.100 из 5


СОХРАНИТЬ ССЫЛКУ