Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2023, 23:33   #1
lenaiv
Пользователь
 
Регистрация: 16.03.2023
Сообщений: 67
По умолчанию с++ упорядочить строки матрицы по неубыванию значений первых элементов строк

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

Код:
#include <iostream>

using namespace std;

double func(double** a, int n, int m)
{
    double x;
    int k, i, j;
    for (k = 0; k < n; k++)
    {
        for (i = 0; i < (n - 1); i++)
        {
            if (a[i][0] > a[i + 1][0])
            {
                for (j = 0; j < m; j++)
                {
                    x = a[i][j];
                    a[i][j] = a[i + 1][j];
                    a[i + 1][j] = x;
                }
            }
        }
    }
    cout << "\n";
    return 0;
}

int main()
{
    setlocale(LC_ALL, "Russian");
    int i, j, m, n;

    cout << ("\nВведите размер двумерного массива (n x m):  \n");
    cout << ("Введите число строк n = ");
    cin >> n;
    cout << ("Введите число столбцов m = ");
    cin >> m;

    double** a = new double* [n];
    for (i = 0; i < n; i++)
        a[i] = new double[m];

    cout << "\nВведите элементы двумерного массива А: \n";
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
        {
            printf(" x[%d][%d] = ", i + 1, j + 1);
            cin >> a[i][j];
        }
    }
    printf("\n Массив A\n");
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
            printf("  %5.2f", a[i][j]);
        printf("\n");
    }
    func(a[i][j], n, m);
    printf("\n   Массив полученный \n");
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
            printf("  %10.2f", a[i][j]);
        printf("\n");
    }
    system("pause");
    return 0;
}
lenaiv вне форума Ответить с цитированием
Старый 21.06.2023, 04:18   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Не знаю, зачем мешать сишные и плюсовые способы печати. Нужно добавить пару хедеров и изменить вызов функции:
Код:
#include <iostream>
#include <cstdio>
#include <windows.h>
...
    func(a, n, m);
И неплохо бы освободить память в конце.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана матрица Х [8,9]. Упорядочить элементы строк матрицы по неубыванию, а сами строки по убыванию максимальных элементов строк (использовать сортировку вставками) Lika199850 Общие вопросы C/C++ 3 22.05.2017 18:18
Упорядочить строки матрицы по возрастанию их первых элементов Андрей_Андрей C++ Builder 1 10.04.2015 20:01
C++ Упорядочить строки матрицы D (m. n) Лексикографически по неубыванию первых k элементов строки Анатолий171 Помощь студентам 123 04.07.2014 18:46
Упорядочить строки матрицы по неубыванию значений наименьших элементов строк PASCAL sanji2010 Помощь студентам 1 19.05.2014 23:30