0 / 0 / 1
Регистрация: 28.11.2019
Сообщений: 19
1

Массив: Для каждой строки прямоугольной целочисленной матрицы определить сумму ее положительных элементов.

11.12.2019, 20:28. Показов 1453. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для каждой строки прямоугольной целочисленной матрицы определить сумму ее положительных элементов.
После чего строку с минимальной суммой таких элементов обнулить.
( Задача решена, но можно ли её переделать без массива s ? )

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
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
75
76
77
78
79
80
81
82
83
84
85
86
/*  Для каждой строки прямоугольной целочисленной матрицы определить сумму ее положительных элементов. 
    После чего строку с минимальной суммой таких элементов обнулить. */ 
 
#include<stdio.h>
#include<math.h>
#include<conio.h> 
#include<windows.h>
 
#define Mmax 10     /* Строки */
#define Nmax 12     /* Столбцы */
 
int main()
{
    int i,j,m,n,imin=0,
     s[Mmax],
     a[Mmax][Nmax]= {
        {4,         9,      13,     -34,    16,     -34,    18,     7,      12,     -56,    -8,     3},
        {-34,       18,     7,      12,     -56,    13,     20,     34,     102,    66,     5,      136},
        {13,        101,    34,     -102,   66,     -38,    -71,    23,     0,      15,     -12,    86},
        {0,         -34,    16,     -34,    0,      7,      12,     -56,    13,     18,     0,      1},                           
        {16,        -49,    18,     7,      12,     -56,    13,     18,     34,     -102,   56,     6},
        {18,        7,      -12,    -56,    13,     18,     34,     -102,   66,     -38,    13,     -852},
        {12,        -56,    13,     0,      34,     -102,   66,     -38,    -71,    -23,    -38,    2},
        {8,         13,     -34,    16,     -94,    18,     7,      12,     -56,    13,     78,     29},
        {-34,       16,     10,     64,     9,      12,     -56,    13,     18,     34,     99,     -99},
        {56,        13,     18,     34,     -102,   66,     -38,    -71,    23,     0,      6,      1}      };
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);      
 
    /*Ввод и контроль размеров матрицы*/
    printf("\t Введите размеры матрицы (Строки<=10 Столбцы<=12) \n");
    scanf_s("%d%d",&m,&n);
    if (m<=0 || m>Mmax || n<=0 || n>Nmax)
    {   printf("\n Размеры матрицы %d на %d не соответствуют условию.", m,n);
        printf("\n Для завершения программы нажмите любую клавишу.");
        _getch();
        exit(0);
    }
 
    /*Вывод исходной матрицы*/
    printf("\n Исходная матрица \n");
    for(i=0; i<m;i++)           //Цикл просмотра строк
         for(j=0; j<n;j++)          //Цикл просмотра элементов текущей строки
             printf("%7.1d%c",a[i][j],j==n-1?'\n':' '); 
 
    /*Условная операция (?:). Если условие истинно (значение j равно n-1),
    возвращается символ '\n', иначе - символ пробела' '. Символ пробела 
    разделяет на экране элементы текущей строки матрицы. После вывода 
    последнего элемента текущей строки выводится символ '\n' 
    и курсор переходит на следующую строку экрана.*/
 
    
    /* Подсчета сумм элементов в строке, используя массив s */
    {
    for(i=0; i<m;i++)   {
         s[i]=0;
         for(j=0; j<n;j++)
             if(a[i][j]>0)
                 s[i]+=a[i][j]; }           }
 
    printf("\n Значения сумм элементов в строках матрицы\n");
    for(i=0; i<m;i++)
        printf("s[%d]=%8.1d\n",i,s[i]);
    
 
    /* нахождение минимальной суммы через массив s */
    {for( i=1; i<m; i++)
            { if(s[i]<s[imin])
                imin=i; }
    printf("\n Строка матрицы с номером %d имеет минимальную сумму, равную %d.\n",imin,s[imin] );
    
        for(j=0;j<n;j++)
                a[imin][j]=0;
 
    /*Вывод отредактированной матрицы*/
    printf("\n\n Отредактированная матрица \n");
    for(i=0; i<m;i++)           //Цикл просмотра строк
         for(j=0; j<n;j++)          //Цикл просмотра элементов текущей строки
            printf("%7.1d%c",a[i][j],j==n-1?'\n':' '); 
 
    }
 
    printf("\n Для завершения программы нажмите любую клавишу.");
    _getch();
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2019, 20:28
Ответы с готовыми решениями:

Для каждой строки прямоугольной целочисленной матрицы определить сумму ее положительных элементов
Для каждой строки прямоугольной целочисленной матрицы определить сумму ее положительных элементов....

Для каждого столбца прямоугольной целочисленной матрицы определить сумму модулей его элементов
Для каждого столбца прямоугольной целочисленной матрицы определить сумму модулей его элементов, а...

Динамический массив. Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы
#include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;string.h&gt; int kol_vo(int **a, int n, int...

Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке
Помогите пожалуйста составить процедуру: Упорядочить строки целочисленной прямоугольной матрицы по...

1
Мозгоправ
1741 / 1035 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
11.12.2019, 22:42 2
Лучший ответ Сообщение было отмечено Asemar как решение

Решение

Цитата Сообщение от Asemar Посмотреть сообщение
( Задача решена, но можно ли её переделать без массива s ? )
Можно.

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
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
75
76
77
78
79
80
81
82
/*  Для каждой строки прямоугольной целочисленной матрицы определить сумму ее положительных элементов.
    После чего строку с минимальной суммой таких элементов обнулить. */
 
#include <limits.h>
#include<stdio.h>
#include<math.h>
#include<conio.h> 
#include<windows.h>
 
#define Mmax 10     /* Строки */
#define Nmax 12     /* Столбцы */
 
int main()
{
    int i, j, m, n,
        a[Mmax][Nmax] = {
           {4,         9,      13,     -34,    16,     -34,    18,     7,      12,     -56,    -8,     3},
           {-34,       18,     7,      12,     -56,    13,     20,     34,     102,    66,     5,      136},
           {13,        101,    34,     -102,   66,     -38,    -71,    23,     0,      15,     -12,    86},
           {0,         -34,    16,     -34,    0,      7,      12,     -56,    13,     18,     0,      1},
           {16,        -49,    18,     7,      12,     -56,    13,     18,     34,     -102,   56,     6},
           {18,        7,      -12,    -56,    13,     18,     34,     -102,   66,     -38,    13,     -852},
           {12,        -56,    13,     0,      34,     -102,   66,     -38,    -71,    -23,    -38,    2},
           {8,         13,     -34,    16,     -94,    18,     7,      12,     -56,    13,     78,     29},
           {-34,       16,     10,     64,     9,      12,     -56,    13,     18,     34,     99,     -99},
           {56,        13,     18,     34,     -102,   66,     -38,    -71,    23,     0,      6,      1} };
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
 
    /*Ввод и контроль размеров матрицы*/
    printf("\t Введите размеры матрицы (Строки<=10 Столбцы<=12) \n");
    scanf_s("%d%d", &m, &n);
    if (m <= 0 || m > Mmax || n <= 0 || n > Nmax)
    {
        printf("\n Размеры матрицы %d на %d не соответствуют условию.", m, n);
        printf("\n Для завершения программы нажмите любую клавишу.");
        _getch();
        exit(0);
    }
 
    /*Вывод исходной матрицы*/
    printf("\n Исходная матрица \n");
    for (i = 0; i < m; i++)           //Цикл просмотра строк
        for (j = 0; j < n; j++)          //Цикл просмотра элементов текущей строки
            printf("%7.1d%c", a[i][j], j == n - 1 ? '\n' : ' ');
 
    /*Условная операция (?:). Если условие истинно (значение j равно n-1),
    возвращается символ '\n', иначе - символ пробела' '. Символ пробела
    разделяет на экране элементы текущей строки матрицы. После вывода
    последнего элемента текущей строки выводится символ '\n'
    и курсор переходит на следующую строку экрана.*/
 
    int sum, min_sum = INT_MAX, min_sum_index = -1;
    /* Подсчет сумм элементов в строке и определение минимальной суммы */
    printf("\n Значения сумм элементов в строках матрицы\n");
    for (i = 0; i < m; i++) {
        sum = 0;
        for (j = 0; j < n; j++)
            if (a[i][j] > 0)
                sum += a[i][j];
        printf("s[%d]=%8.1d\n", i, sum);
        if (sum < min_sum) {
            min_sum = sum;
            min_sum_index = i;
        }
    }
 
    printf("\n Строка матрицы с номером %d имеет минимальную сумму, равную %d.\n", min_sum_index, min_sum);
 
    for (j = 0; j < n; j++)
        a[min_sum_index][j] = 0;
 
    /*Вывод отредактированной матрицы*/
    printf("\n\n Отредактированная матрица \n");
    for (i = 0; i < m; i++)           //Цикл просмотра строк
        for (j = 0; j < n; j++)          //Цикл просмотра элементов текущей строки
            printf("%7.1d%c", a[i][j], j == n - 1 ? '\n' : ' ');
 
    printf("\n Для завершения программы нажмите любую клавишу.");
    _getch();
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2019, 22:42
Помогаю со студенческими работами здесь

Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке
Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых...

Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке
Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых...

Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке
Помогите, пожалуйста! Нужно написать программу.:) Вот задание : Упорядочить строки целочисленной...

Определить сумму положительных элементов каждой строки матрицы
//Дана прямоугольная целочисленная матрица размером m*n, //где m - количество строк, а n -...

Для целочисленной матрицы n*m сформировать одномерный массив, состоящий из количества элементов каждой строки кратных 5
Для целочисленной матрицы n*m сформировать одномерный массив, состоящий из количества элементов...

Найти сумму элементов каждой строки заданной целочисленной матрицы
Создать целочисленный двумерный массив 7 строк на 6 столбцов. Заполнить его случайными числами в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru