Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
System_Bot
0 / 0 / 0
Регистрация: 09.10.2016
Сообщений: 21
1

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

26.09.2017, 23:18. Просмотров 379. Ответов 4
Метки нет (Все метки)

Задана матрица размером NxM. Передвинуть циклическим сдвигом элементы каждой строки так, чтобы максимальный элемент стал на первое место.
Помогите пожалуйста
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2017, 23:18
Ответы с готовыми решениями:

Переместить столбцы в матрице так, чтобы четный встал на место нечетного справа
Текст программы не закомпилируеться так как это часть лабы там еще 4 модуля с прототипами функций,...

Массив: Осуществить перестановку в каждой строке матрицы так, чтобы первый элемент строки поменялся с последним.
Нужно решить две задачи, первая просто c массивами, вторая с помощью указателей. Задача 1....

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

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

Выполнить кольцевой сдвиг элементов массива так чтобы его первый максимальный элемент оказался на k-том месте
Дан одномерный массив размерность n и число k. Если в исходном массиве чисел больше, чем k, то в...

4
Геомеханик
798 / 602 / 939
Регистрация: 26.06.2015
Сообщений: 1,409
28.09.2017, 11:35 2
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
#include <stdio.h>
#include <string.h>
#define N  5
#define M  4
int  index_max(const int arr[], int n);
void cycle_left(int arr[], int n, int off);
 
int main(void){
    int i, j;
    int mat[N][M] = {
        { 1, 2, 3, 4 },
        { 1, 5, 3, 4 },
        { 0, 3, 7, 1 },
        { 4, 1, 2, 6 },
        { 4, 9, 5, 3 }
    };
    
    for(i = 0; i < N; ++i)
        cycle_left(mat[i], M, index_max(mat[i], M));
 
    //вывод
    for(i = 0; i < N; ++i){
        for(j = 0; j < M; ++j)
            printf("%d ", mat[i][j]);
        putchar('\n');
    }
    getchar();
    return 0;
}
 
//циклический сдвиг влево
void cycle_left(int arr[], int n, int off){
    int tmp[M];
    if(off > 0 && off < n){
        memcpy(&tmp[0], &arr[0],       (size_t)off * sizeof(int));
        memcpy(&arr[0], &arr[off],     (size_t)(n - off) * sizeof(int));
        memcpy(&arr[n - off], &tmp[0], (size_t)off * sizeof(int));
    }
}
 
//макс
int index_max(const int arr[], int n){
    int i, j = 0;
    for(i = 1; i < n; ++i){
        if(arr[i] > arr[j])
            j = i;
    }
    return j;
}
0
System_Bot
0 / 0 / 0
Регистрация: 09.10.2016
Сообщений: 21
28.09.2017, 22:20  [ТС] 3
Мне нужно на чистом си
0
_SayHello
667 / 388 / 124
Регистрация: 30.07.2015
Сообщений: 1,351
28.09.2017, 22:26 4
System_Bot, а тут на каком?
0
LFC
730 / 535 / 416
Регистрация: 17.09.2015
Сообщений: 1,598
29.09.2017, 08:27 5
для учебных целей
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
#include <stdio.h>
#define M 3
#define N 5
int main()
{
    int A[M][N] = {{3,45,11,6,9},
                   {7,2,12,56,3},
                   {0,-2,4,12,-5}};
    int max, i, j, tmp, k;
    for(i = 0; i < M; i++){
        for(j = 1, max = 0; j < N; j++){
            if(A[i][j] > A[i][max])
                max = j;
        }
        if(max){
            for( ; max; max--){
                for(k = 0, tmp = A[i][k]; k < N - 1; k++)
                    A[i][k] = A[i][k + 1];
                A[i][N - 1] = tmp;
            }
        }
    }
    for(i = 0; i < M; i++, putchar('\n'))
        for(j = 0; j < N; j++)
            printf("%4d", A[i][j]);
    return 0;
}
0
29.09.2017, 08:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2017, 08:27

Переставить строки и столбцы матрицы так, чтобы максимальный элемент был расположен на пересечении k-й строки и k-го столбца
Задана матрица размером n x m. Найти максимальный по модулю элемент матрицы. Переставить строки и...

Переставить строки и столбцы матрицы так, чтобы максимальный по модулю элемент был расположен на пересечении k-й строки и k-го столбца
Задана матрица размером n*m. Найти максимальный по модулю элемент матрицы. Переставить строки и...

Переставить строки и столбцы матрицы так чтобы максимальный элемент оказался справа сверху
#include &quot;stdafx.h&quot; #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;stdlib.h&gt; using namespace...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru