Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 15.01.2015
Сообщений: 3

Расположить строки матрицы по убыванию их последних элементов

15.01.2015, 21:49. Показов 1150. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Буду благодарен за помощь с задачей.

Составить программу решения следующей задачи:
В текстовом файле в первой строке записаны два целых числа, разделенные пробелом, – количество строк и столбцов матрицы, в последующих – элементы строк матрицы, также разделенные пробелами, в одной строке файла – одна строка матрицы. Количество строк и столбцов - не более 50. Расположить строки матрицы по убыванию их последних элементов. Исходную и полученную матрицы записать в текстовый файл построчно, отделив одну от другой пустой строкой.

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<iostream>
#include<fstream>
#include<stdio.h>
using namespace std;
int main()
{
    setlocale (LC_ALL,".1251");
    ifstream in ("in.txt");
    ofstream out ("out.txt");
    const int a=50,b=50;
    int mat [a] [b];
    int n,m;
    int i,j;
    in>>n>>m;
    for( i=0;i<n;i++)
        for( j=0;j<m;j++)
            in>>mat[i][j];
    for( i=0;i<n;i++)
    
        for( j=0;j<m;j++)
                out<<mat[i][j]<<" ";
            out<<endl;
            j=0;
            if(mat[n-1][m-1]>mat[n-2][m-2])
            {
                int temp;
                mat[n-1][j]=temp;
                mat[n-1][j]=mat[n-2][j];
                temp=mat[n-2][j];
                j++;
                n--;
                m--;
            }
            for(i=0;i<n;i++)
                for(j=0;j<m;j++)
                    out<<mat[i][j]<<" ";
            in.close();
            out.close();
            return 0;
}
Что-то набросал, но компилятор ругается и выдаёт: "Unhandled exception at 0x0029126b in кр 4-5 н7.exe: 0xC0000005: Access violation reading location 0x33b90308.".
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.01.2015, 21:49
Ответы с готовыми решениями:

Расположить строки матрицы по убыванию их последних элементов
В текстовом файле в первой строке записаны два целых числа, разделенные пробелом, – количество строк и столбцов матрицы, в последующих –...

Отсортировать строки матрицы по убыванию их последних элементов
Помогите пожалуйста с заданием) Сформировать квадратный массив целых чисел размерности nxn, где n&lt;10 – вводится с клавиатуры,...

Переставить строки матрицы по убыванию значений последних элементов
Для матрицы A(m,n), 1&lt;m, n&lt;10 сформировать массив из минимальных элементов каждого столбца. Переставить строки по убыванию значений...

3
Модератор
Эксперт С++
 Аватар для zss
13766 / 10960 / 6490
Регистрация: 18.12.2011
Сообщений: 29,234
15.01.2015, 22:05
Строки 23-33 не внутри какого-либо цикла.
Потому никакой сортировки не выполняют.
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
16.01.2015, 00:25
Цитата Сообщение от R_B Посмотреть сообщение
C++
1
2
3
4
5
    for( i=0;i<n;i++)
    
        for( j=0;j<m;j++)
                out<<mat[i][j]<<" ";
            out<<endl;
C++
1
2
3
4
5
6
for (i = 0; i < n; i++)
{
        for (j = 0; j < m; j++)
                out << mat[i][j] << " ";
        out << endl;
}
Это раз
Цитата Сообщение от R_B Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
        if(mat[n-1][m-1]>mat[n-2][m-2])
            {
                int temp;
                mat[n-1][j]=temp;
                mat[n-1][j]=mat[n-2][j];
                temp=mat[n-2][j];
                j++;
                n--;
                m--;
            }
что происходит здесь? Зачем уменьшать значения если нет цикла? А если будет цикл, где проверка, что n-2 и m-2 не меньше нуля?

Добавлено через 24 минуты
R_B,
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
#include <iostream>
#include <fstream>
 
int main()
{
    std::ifstream in("in.txt");
    std::ofstream out("out.txt");
    const int a = 50;
    int matrix[a][a];
    int n, m, i, j;
    if (!in.is_open())
    {
        std::cerr << "Error! 'in.txt' not found!" << std::endl;
        return 0;
    }
    in >> n >> m;
    for (i = 0; i < n; ++i)
        for (j = 0; j < m; ++j)
            in >> matrix[i][j];
    in.close();
    if (!out.is_open())
    {
        std::cerr << "Error! 'out.txt' not found!" << std::endl;
        return 0;
    }
    for (i = 0; i < n; ++i)
    {
        for (j = 0; j < m; ++j)
            out << matrix[i][j] << ' ';
        out << std::endl;
    }
    out << std::endl;
    for (i = 0; i < n-1; ++i)
        for (int k = i+1; k < n; ++k)
        {
            if (matrix[i][m-1] < matrix[k][m-1])
                for (j = 0; j < m; ++j)
                {
                    int temp = matrix[i][j];
                    matrix[i][j] = matrix[k][j];
                    matrix[k][j] = temp;
                }   
        }
    for (i = 0; i < n; ++i)
    {
        for (j = 0; j < m; ++j)
            out << matrix[i][j] << ' ';
        out << std::endl;   
    }
    out.close();
    
    return 0;
}
0
0 / 0 / 0
Регистрация: 15.01.2015
Сообщений: 3
16.01.2015, 11:59  [ТС]
Снёс и писал заново:

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
#include<iostream>
#include<fstream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
    /*В текстовом файле в первой строке записаны два целых числа, разделенные пробелом, 
    – количество строк и столбцов матрицы, в последующих – элементы строк матрицы, также разделенные пробелами, 
    в одной строке файла – одна строка матрицы. Количество строк и столбцов - не более 50. 
    Расположить строки матрицы по убыванию их последних элементов. Исходную и полученную матрицы записать в текстовый файл построчно, 
    отделив одну от другой пустой строкой.*/
    setlocale (LC_ALL,".1251");
    ifstream in ("in.txt");
    ofstream out ("out.txt");
    int n, m;
    in >> n;
    in >> m;
    cout << n << " " << m << endl;
    int **s = new int*[n];
    for (int i=0;i<n;i++)   
        s[i]= new int [m];
    for (int i=0;i<n;i++) 
        for (int j=0;j<m;j++)
            in >> s[i][j];
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<m;j++)
            out << " " << s[i][j];
        out << endl;
    }
    out << endl;
int t=0;
int r=0;
for (int k=0;k<n-1;k++)
{
  for (int u=k;u<n;u++)
    {
        for (int q=0;q<n;q++)
        {
          int j=m-1;
          if (s[u][j]>t)
            {
                t=s[u][j];
                r=u;
            }
        }
}
  for (int q=0;q<m;q++)
      swap(s[r][q],s[k][q]);
  t=0;
}
cout << t << "  " << r+1 << endl;
for (int i=0;i<n;i++)
    {
        for (int j=0;j<m;j++)
            out << " " << s[i][j];
        out << endl; 
}
in.close();
out.close();
system("pause");
return 0;
}
Заработало!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.01.2015, 11:59
Помогаю со студенческими работами здесь

Упорядочить (переставить) строки матрицы по убыванию значений последних элементов строк
Дана действительная матрица размером M N. Упорядочить (переставить) строки матрицы по УБЫВАНИЮ ЗНАЧЕНИЙ ПОСЛЕДНИХ ЭЛЕМЕНТОВ СТРОК....

Расположить элементы заданной строки матрицы по убыванию
ввести двумерный массив m на n, ввести номер строки и распол. элементы строки по убыванию

Расположить столбцы матрицы по убыванию их наибольших элементов
Доброго времени суток. Дана матрица А(5´5). Расположить столбцы матрицы по убыванию их наибольших элементов. не могу понять...

Расположить столбцы динамической матрицы по убыванию их наибольших элементов
Добрый день! Помогите пожалуйста написать программу. Массив динамический. Размерность массива задается на этапе выполнения ...

Расположить столбцы динамической матрицы по убыванию их наибольших элементов
Добрый день! Помогите пожалуйста с программой Дана матрица А(nхn). Расположить столбцы матрицы по убыванию их наибольших...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru