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

  1. Написать программу по заданию:Дана действительная матрица размера m*n. Найти сумму наибольших значений элементов ее строк.Необходимо написать программу в 2-х вариантах:с использованием указателей и без использования указателей. Примеры:1:Найти максимальную сумму элементов строк матрицы 3*5.Пример программы без использования указателей:C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #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. Пример программы с использованием указателей:C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #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); }  


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;
}


Похожие ответы
  1. Добрый вечер! Дан массив M*N. Необходимо отсортировать ее по строкам так, чтобы вначале шли все положительные элементы, отсортированные по убыванию, а затем все остальные, отсортированные по возрастанию (если в строке имеются нули - переставить их в конец строки). Вывести получившуюся матрицу. У меня проблема с перестановкой нулей. C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 #include     int main()     {   int N, M,t, i,j,k, mas[10][10]={0}, q;         printf("VVEDITE N,M \n");     scanf("%d%d", &N,&M);     printf("VVEDITE MASSIV \n");       for (i=0; i < N; i++)        for (j=0; j < M; j++)            scanf ("%d", &mas[i][j]);       for(k = 0; k < N; k++){     for(i = 0 ; i < M; i++){         for(j = i + 1; j < M; j++){               if((mas[k][i] < mas[k][j]) && (mas[k][i]!=0)){                       t = mas[k][i];                     mas[k][i] = mas[k][j];                     mas[k][j] = t;               }         }     } }   if (mas[i][j]<0) {     } {   for(k = 0; k < N; k++){         for(i = 0 ; i < M; i++){             for(j = i + 1; j < M; j++){                   if(mas[k][i] < mas[k][j]) {                       t = mas[k][i];                     mas[k][i] = mas[k][j];                     mas[k][j] = t;               }         }     } } } for(i = 0 ; i < M; i++)     {         for(j = 0; j < M; j++)             if (mas[i][j]==0)         {                 for ( q = j; q < N-1 ; q++)                 {                     mas[i][q] = mas[i][q + 1];                 }                 mas[N-1][M-1] = 0;           }     }   for (i=0; i < N; i++)        {for (j=0; j < M; j++)               printf ("%d\t", mas[i][j]);        printf (" \n");}   getch();}

  1. Помогите пожалуйсто решить, но желательно в такой студенческой форме: C++1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include "stdafx.h" #include #include #include #include #include #include   void main() {     int otv, h;     float x, z;     setlocale(LC_ALL, "Rus");     while (true)     {         system("cls");         printf("Программа которая вычисляет выражение в зависимости от константы");         printf("\n Вырожение:");         printf("\n        __");         printf("\n       |Inx-tg3x+1, при h=2");         printf("\n       |");         printf("\n     z=|");         printf("\n       |       ____");         printf("\n       |(x^4)+V4x+2|, при h=1");         printf("\n        ——");         printf("\n Введите h:");         scanf_s("\n %d", &h);         printf("\n Введите x:");         scanf_s("\n %d", &x);         switch (h)         {         case 0: {z = (log(x) - tan(3 * x) + 1); printf("z=%4.2f", z); } break;         case 1: {z = ((pow(x, 4) + sqrt(4 * x + 2))); printf("z=%4.2f", z); } break;         default: printf("\n Неверное значение");         }         printf("\n Продолжить работу?(0/1)");         scanf_s("\n %d", &otv);         if (otv = 0) break;     }     _getch(); }

  1. Нужно создать квадратную матрицу по рисунку. По стрелочке расположить натуральный ряд. Остальные элементы равны нулю. Заранее спасибо! P.S. gcc

  1. Решите задачи данной группы, оформив решение в виде процедур генерации, вывода и обработки массивов. Предусмотрите в процедуре генерации массива ввод границ диапазона случайных чисел. Дана целочисленная матрица размера n × m. Найти количество ее строк, все элементы которых различны.

  1. Дана прямоугольная матрица. Найти столбец с наибольшей и наименьшей суммой элементов. Вывести на печать найденные столбцы и суммы их элементов.

  1. Дана матрица A(n*m). Получить вектор b1, b2, ..., bn, где bi равно наибольшему значению в строке.

  1. Определить, является ли данная целая квадратная матрица 9-го порядка, магическим квадратом, то есть такой в которой суммы элементов во всех скобках, во всех столбцах и в обеих диагоналях одинаковы.

  1. Дано натуральное число n. Выяснить, сколько положительных эле- ментов содержит матрица a[i,j]i,j=1,...,n, если

  1. Дан табель отметок. Нужно посчитать количество хорошистов. (Отметки >=6 && <=8)C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 #include #include #include #include   int main() {       setlocale(LC_ALL, "Rus");     int **mas,i,j,n,m,k=0,k1=0;     printf("Введите количество студентов: ");     scanf("%d",&n);     printf("Введите количество отметок: ");     scanf("%d",&m);     mas=(int**)calloc(n,sizeof(int*));     for(i=0;i=6 && (mas[i][j])<=8);         k1++;         if(k1==m)             k++;         k1=0;     }     }     printf("Количество хорошистов: %d",k);     for(i=0;i=6 && <=8. k1 - левый счетчик, в который заносил количество подходящих элементов. Потом сравнивал с общим количеством. Если совпадал, то заносится в k, который потом отображает количество нужных строк.