Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 07.10.2019
Сообщений: 17
1

Как найти максимальный элемент двумерного массива в каждой строке?

23.10.2019, 19:13. Показов 5459. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание: В массиве все нечётные элементы, стоящие сверху от минимального элемента массива, заменить на максимальный элемент строки, в которой они расположены

Не понимаю как отвести максимальные элементы каждой строки в отдельную переменную
Думал, что нужен отдельный массив, но тогда как заменить элементы в исходном массиве?

Добавлено через 3 минуты
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
void main()
{
    int a[10][10];
    int n, m; // кол-во строк и столбцов
    int i, j;
 
    scanf("%d", &n);
    scanf("%d", &m);
 
    i = 0;
    while (i < n) {        // вывод строк
        j = 0;
        while (j < m) {   // вывод столбцов 
            scanf("%d", &a[i][j]);
            j++;
        }
        i++;
    }
 
    // нахождение минимального элемента  
    int jMin = 0;;
    int iMin = 0;;
    int min = a[0][0];
    j = 0;
    while (j < m) {
        i = 0;
        while (i < n) {
            if (a[i][j] < min) {
                min = a[i][j];
                jMin = j;
                iMin = i;
            }
            i++;
        }
        j++;
    }
 
    int iMax = 0;;
    j = 0;
    while (j < m) {
        i = 0;
        while (i < n) {
            if (a[i][j] < a[i + 1][j]) {
                iMax = a[i + 1][j];
            }
            i++;
        }
        j++;
    }
 
 
 
 
    j = 0;
    while (j < m) {
        i = 0;
        while (i < iMin) {
            if (a[i][j] % 2 != 0) {
                a[i][j] = iMax;
            }
            i++;
        }
        j++;
    }
 
 
    i = 0;
    while (i < n) {
        j = 0;
        while (j < m) {
            printf("%4d ", a[i][j]);
            j++;
        }
        printf("\n");
        i++;
    }
    printf("\n");
 
 
    {
        int x;
        scanf("%d", &x);
    }
 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.10.2019, 19:13
Ответы с готовыми решениями:

Найти максимальный элемент в каждой строке двумерного массива по модулю, и сложить их
Задаётся массив двумерный. Нужно сначала найти максимальный элемент в каждой строке по модулю, а...

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

Как найти максимальный элемент массива в каждой строке?
Как находится максимальный элемент массива в каждой строке? Никак понять не могу

Найти максимальный элемент в каждой строке массива и номер столбца, в котором этот максимальный элемент находится
Найти максимальный элемент в каждой строке массива и номер столбца, в котором этот максимальный...

1
2307 / 1133 / 702
Регистрация: 25.04.2016
Сообщений: 3,229
23.10.2019, 20:23 2
Лучший ответ Сообщение было отмечено mayst1231 как решение

Решение

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
#include <stdio.h>
#include <stdlib.h>     /* необходим для srand() и rand() */
#include <time.h>       /* необходим для time() */
 
int main (void)
{
    int a[10][10];
    int n, m;           // n - кол-во строк, m - столбцов
    int i, k;
 
    printf("rows = ");  scanf("%d", &n);
    printf("cols = ");  scanf("%d", &m);
    printf("\n");
    if (n<1 || n>10 || m<1 || m>10) return 1;
 
    /* заполняем массив значениями с клавиатуры
    for (i = 0; i < n; i++)
        for (k = 0; k < m; k++)
            scanf("%d", &a[i][k]);
    */
 
    /* заполняем массив случайными значениями */
    srand((unsigned int)time(NULL)/2);  // новая точка отсчета случайных
 
    for (i=0; i<n; i++)
    {
        for (k=0; k<m; k++)
            printf("%4d", a[i][k] = rand()%100);
        printf("\n");
    }
 
    /* находим минимальный элемент массива */
    int min = 0;        // считаем самый первый элемент (a[0][0]) минимальным
    int size = m*n;     // максимальное число элементов в массиве
    for (i=1; i<size; i++)
        if (a[i/m][i%m] < a[min/m][min%m])
            min = i;
 
    /* выводим информацию по найденному минимальному на экран */
    printf("\nmin = a[%d][%d] = %d\n\n", min/m, min%m, a[min/m][min%m]);
 
    /* изменяем массив по условию */
    int max;
    min = min/m;    // строка, в которой находится минимальный элемент
    for (i=0; i<min; i++)
    {
        /* находим для i-той строки максимальный */
        max = 0;    // считаем, что первый элемент строки (a[i][0]) максимальный
        for (k=1; k<m; k++)
            if (a[i][max] < a[i][k])        // если нашелся элемент больше
                max = k;                    // запоминаем новый максимум
        /* заменяем в i-той строке все нечетные максимальным */
        for (k=0; k<m; k++)
            if (k != max && a[i][k]%2 > 0)
                a[i][k] = a[i][max];
    }
 
    /* выводим массив на экран */
    for (i=0; i<n; i++)
    {
        for (k=0; k<m; k++)
            printf("%4d", a[i][k]);
        printf("\n");
    }
    printf("\n");
 
    return 0;
}
1
23.10.2019, 20:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2019, 20:23
Помогаю со студенческими работами здесь

Найти максимальный элемент каждой строки двумерного массива
Как найти макс элемент каждой строки двумерного массива const a = 100; b = 100; type ...

Найти максимальный элемент в заданной строке двумерного массива
Здравствуйте. Условие задачи: Ввести с клавиатуры двумерный массив целых случайных чисел...

В каждой строке найти наибольший элемент двумерного массива
В каждой строке найти наибольший элемент. Из этих элементов найти наименьший и удалить ту строку,...

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru