С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
10 / 12 / 0
Регистрация: 20.07.2011
Сообщений: 430
1

Поменять местами максимальные элементы массива и матрицы

21.12.2015, 09:10. Показов 1623. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне нужно решить задачу "Поменять местами максимальные элементы массива А (45) и матрицы
В (6х9)." Я составила программу, а мне говорят что нужно её решить одним циклом, а я не понимаю как. Помогите, посмотрите, посоветуйте, что изменить
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <stdio.h>
#include <conio.h>
 
#define L 4 // Количество элементов массива
#define N 3 // Количество строк матрицы
#define M 2 // Количество столбцов матрицы
 
void EnterData(double A[L], int num, double B[N][M], int numStr, int numCol);
void EnterMatrix(double B[N][M], int numStr, int numCol);
void OutputArray(double A[L], int num);
void OutputMatrix(double B[N][M], int numStr, int numCol);
void Change(double A[L], int num, double B[N][M], int numStr, int numCol);
 
int main()
{
    double A[L], B[N][M];
 
    // Ввод массива и матрицы
    printf("Enter array A and Matrix B:\n");
    EnterData(A, L, B, N, M);
    printf("\n");
 
    // Вывод введенных массива и матрицы
    printf("Entered array A:\n");
    OutputArray(A, L);
    printf("Entered matrix B:\n");
    OutputMatrix(B, N, M);
    printf("\n");
 
    Change(A, L, B, N, M);
 
    // Вывод измененных матриц
    printf("Changed array A:\n");
    OutputArray(A, L);
    printf("Changed matrix B:\n");
    OutputMatrix(B, N, M);
    printf("\n");
 
    getch();
    return 0;
}
 
// Ввод массива и матрицы
void EnterData(double A[L], int num, double B[N][M], int numStr, int numCol)
{
    int i, j;
 
    for (i = 0; i < num; ++i)
    {
        printf("Enter element[%d] = ", i);
        scanf("%lf", &A[i]);
    }
 
    for (i = 0; i < numStr; ++i)
        for (j = 0; j < numCol; ++j)
        {
            printf("Enter element[%d][%d] = ", i, j);
            scanf("%lf", &B[i][j]);
        }
}
 
// Вывод массива
void OutputArray(double A[L], int num)
{
    int i;
 
    for (i = 0; i < num; ++i)
        printf("%5.2lf  ", A[i]);
    printf("\n");
}
 
 
// Вывод матрицы
void OutputMatrix(double B[N][M], int numStr, int numCol)
{
    int i, j;
 
    for (i = 0; i < numStr; ++i)
    {
        for (j = 0; j < numCol; ++j)
            printf("%5.2lf  ", B[i][j]);
        printf("\n");
    }
}
 
// Смена максимальный элементов массива и матрицы
void Change(double A[L], int num, double B[N][M], int numStr, int numCol)
{
    double buf;
    int i, j,
        k, l, m;
 
    k = 0;
    for (i = 1; i < num; ++i)
        if (A[i] > A[k])
            k = i;
 
    l = m = 0;
    for (i = 0; i < numStr; ++i)
        for (j = 0; j < numCol; ++j)
            if (B[i][j] > B[l][m])
            {
                l = i;
                m = j;
            }
 
    buf = A[k];
    A[k] = B[l][m];
    B[l][m] = buf;
}
0
IT_Exp
Эксперт
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
Блог
21.12.2015, 09:10
Ответы с готовыми решениями:

Поменять местами максимальные элементы массива
В массивах A и B поменять местами максимальные элементы в первой и второй половинах массивов....

Поменять местами в файле минимальный и максимальные элементы
Дан файл вещественных чисел. Поменять в нём местами минимальный и максимальные элементы. На ум...

Найти min и max элементы квадратной матрицы и поменять местами строки, в которых находятся эти элементы
Здраствуйте, стыдно просить такую глупость для вас, но сам я не могу реализовать вот такой код:...

Поменять местами элементы строк матрицы
Дана матрица размерности 5х9. Заполнить матрицу случайными числами в диапазоне 5 ÷ 99 и...

2
88 / 88 / 80
Регистрация: 25.08.2013
Сообщений: 337
21.12.2015, 13:38 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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
 
#define L 14 // Количество элементов массива
#define N 6 // Количество строк матрицы
#define M 9 // Количество столбцов матрицы
 
int main()
{
    int A[L], B[N][M], k, l, m, buf;
    l = k = m = 0;
    srand(time(NULL));
    for (int i = 0; i < L || i < N; ++i) {
        if (i < L)
            printf("\n[%2d]    ", A[i] = rand() % 100);
        if (i < N)
            for (int j = 0; j < M; ++j)
                printf("[%2d]", B[i][j] = rand() % 100);
    }
    for (int i = 0; i < L || i < N; ++i) // Поиск и в матрице и в массиве
    {                                   // одним циклом
        if (i < L)
            if (A[i] > A[k])
                k = i;
        if (i < N)
            for (int j = 0; j < M; ++j)
                if (B[i][j] > B[l][m])
                {
                    l = i;
                    m = j;
                }
    }
    buf = A[k];
    A[k] = B[l][m];
    B[l][m] = buf;
    printf("\n Change [%2d] in matrix on [%2d] in array\n", A[k], B[l][m]);
    return 0;
}
0
0 / 0 / 0
Регистрация: 17.11.2022
Сообщений: 76
10.01.2023, 11:31 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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define L 14 // Количество элементов массива
#define N 6 // Количество строк матрицы
#define M 9 // Количество столбцов матрицы
 
int random_array(int a[], int l);
int random_matrix (int b[][M], int n, int m);
void print_array (int a[], int l);
void print_matrix(int b[][M], int n, int m);
void change_max (int a[], int b[][M]);
int max_array(int a[], int l);
int max_matrix (int b[][M], int n, int m);
 
int main (){
    srand(time(0));
    int a[L], b[N][M], i, j, k, l, m, buf;
    k = l = m = 0;
    random_array(a, L);
    print_array(a, L);
    printf("\n\n");
    random_matrix (b, N, M);
    print_matrix(b, N, M);
    printf("\n");
    max_array(a, L);
    max_matrix(b, N, M);
    change_max (a, b);
    print_array(a, L);
    printf("\n\n");
    print_matrix(b, N, M);
    printf("\n");
 
 
 
}
int random_array(int a[], int l){
    int i;
    for (i = 0; i < L; ++i){
        a[i] = rand() % 100;
    }
    return a;
}
 
int random_matrix (int b[][M], int n, int m){
    int i, j;
    for (i = 0; i < N; ++i) {
        for (j = 0; j < M; ++j)
        {
                b[i][j] = rand() % 100;
        }
 
    }
    return b;
}
 
int max_array(int a[], int l){
    int i, k;
    for (i = 0; i < L; ++i)
    {
        if (a[i] > a[k])
        {
            k = i;
        }
    }
    return a[k];
}
 
int max_matrix (int b[][M], int n, int m){
    int i, j, l, u;
    for (int i = 0; i < N; ++i) // Поиск и в матрице и в массиве
    {                                   // одним циклом
        for (int j = 0; j < M; ++j)
            if (b[i][j] > b[l][u])
            {
                l = i;
                u = j;
            }
    }
    return b[l][u];
}
void change_max (int a[], int b[][M]){
    int buf, k, l , u;
    max_array(a, L);
    max_matrix(b, N, M);
    buf = a[k];
    a[k] = b[l][u];
    b[l][u] = buf;
}
 
void print_array (int a[], int l){
    int i;
    for (i = 0; i < L; ++i){
        printf("%d\t", a[i]);
    }
}
void print_matrix(int b[][M], int n, int m){
    int i, j;
    for (i = 0; i < N; ++i) {
        for (j = 0; j < M; ++j) {
            printf("%d\t", b[i][j]);
        }
    printf("\n");
    }
}
0
10.01.2023, 11:31
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
10.01.2023, 11:31
Помогаю со студенческими работами здесь

Поменять местами минимальный и максимальный элементы матрицы
Дана матрица размером 4х5. Поменять местами минимальный и максимальный элементы матрицы. Я набила...

Поменять местами минимальный и максимальный элементы матрицы
Дана матрица размером 4х5. Поменять местами минимальный и максимальный элементы матрицы. Матрицу, я...

Поменять местами минимальный и максимальный элементы матрицы
Дана матрица размером 4х5. Поменять местами минимальный и максимальный элементы матрицы. Матрицу, я...

Поменять местами элементы массива
Может, кто-нибудь знает, как дальше делать: нужно поменять местами элементы 1-го массива, которые...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Блоги программистов
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(шес­­­­­­­­­­­­­­­ти­б­и­т­н­ы­й асихронный счётчик с управляющим сигналом заде
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9 Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget. . .
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin. Есть ещё регистры,. . .
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
Angular vs React vs Vue.js
BasicMan 03.01.2025
О, друзья-разработчики и просто любопытные читатели! Сегодня мы отправимся в увлекательное путешествие по миру фронтенд-разработки, и первой остановкой станет Angular – этакий строгий немецкий. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru