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

Упорядочить строки матрицы лексикографически по неубыванию первых k элементов строки.

30.06.2014, 19:46. Показов 2880. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить задачу, пожалуйста

Упорядочить строки матрицы D ( m, n) лексикографически по неубыванию первых k элементов строки.





Вот этот C++ код

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
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <clocale>
#include <ctime>
#include <algorithm>
 
bool comp(int* v1, int* v2)
{
    return *v1 < *v2;
}
 
int main()
{
    setlocale(LC_ALL,"russian");
    int n, m;
    int **mas = NULL;
    srand(time(NULL));
    printf ("\n Введите размерность таблицы(m,n): ");
    scanf("%d%d", &m, &n);
    mas = new int * [n];
 
    for (int i=0; i < n; i++)
    {
        mas[i] = new int [m];
        for ( int k = 0; k < m; k++)
        {
            mas[i][k] = rand()%100;
            printf ("\t%d ", mas[i][k]);
        }
        printf ("\n");
    }
 
    std::sort(mas, mas + m, &comp);
    printf("\nSort matrix: \n");
    for (int i=0; i < n; i++)
    {
        for ( int k = 0; k < m; k++)
            printf ("\t%d ", mas[i][k]);
        printf ("\n");
    }
 
    system("Pause");
    return EXIT_SUCCESS;



Дело в том, что у меня стоит C++ 3.1
И не читает printf , #include <ctime> без " .H "
Он понимает cout <<
cin >>
#include < .h>


Вы можете подкорректировать код и правильный ли он вообще пожалуйта
помогите мне

Добавлено через 31 минуту
Или код должен быть таким?
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 <stdafx.h>
#include <stdlib.h>
#include <conio.h>
 
void main()
{
    int mas[ 50 ][ 50 ]; 
 
    
 
    printf( "Vvedite razmer matrici\n" );
    srand( 1 );
 
    
 
    int i, j, a, b; scanf( "%d  %d", &a, &b ); 
    for( i = 0; i < a; i++ )
    {
        for( j = 0; j < b; j++ )
        {
 
            
 
            mas[ i ][ j ] = ( double )rand() / ( RAND_MAX + 1 ) * 99 + 1; 
 
        
 
            printf( "%3d", mas[ i ][ j ] );
        }
        printf("\n");
    }
    int x,y;
 
 
 
    for( y = 0; y < a; y++ )
    {
        for ( i = 0; i < ( a - 1 ); i++ )
        {
            if( mas[ i ][ 0 ] > mas[ i + 1 ][ 0 ] )
            {
                for( j = 0 ; j < b; j++ )
                {
                    x = mas[ i ][ j ];
                    mas[ i ][ j ] = mas[ i + 1 ][ j ];
                    mas[ i + 1 ][ j ] = x;
                }
            }
        }
    }
    printf("\n");
 
    
 
    for( i = 0; i < a; i++ )
    {
        for( j = 0; j < b; j++ )
        {
            printf( "%3d", mas[ i ][ j ] );
        }
        printf("\n");
    }
    getch();
}
Помогите прошу, просто я к сожалению не понимаю
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.06.2014, 19:46
Ответы с готовыми решениями:

Упорядочить строки матрицы D (m. n) Лексикографически по неубыванию первых k элементов строки
Помогите решить задачу C++ пожалуйста, пожалуйста Упорядочить строки матрицы D (m. n) Лексикографически по неубыванию первых k...

Упорядочить строки матрицы по неубыванию их первых элементов
Написать программу: Дан двумерный массив. Упорядочить его строки по неубыванию их первых элементов.

Упорядочить строки матрицы по неубыванию первых элементов
Дана матрица m*n, m,n&lt;50. Упорядочить ее строки по неубыванию их первых элементов.нарисуйте блок-схему.

28
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
30.06.2014, 20:37
Добавь .h, если нужно.
0
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 18
30.06.2014, 20:52  [ТС]
Я переделал вот так




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.h>
#include <stdlib.h>
#include <conio.h>
 
void main()
{
int mas[ 50 ][ 50 ]; 
 
//инициализируем массив
 
cout<< "Vvedite razmer matrici\n";
srand( 1 );
 
//получаем от пользователя реальные размеры массива
 
int i, j, a, b; cin>> "%d %d", &a, &b ; 
for( i = 0; i < a; i++ )
{
for( j = 0; j < b; j++ )
{
 
//заполняем матрицу с помощью генератора псевдослучайных чисел
 
mas[ i ][ j ] = ( double )rand() / ( RAND_MAX + 1 ) * 99 + 1; 
 
//выводим исходную матрицу
 
cout<< "%3d", mas[ i ][ j ] ;
}
cout<<"\n";
}
int x,y;
 
//применяем пузырьковый метод сортировки 
 
for( y = 0; y < a; y++ )
{
for ( i = 0; i < ( a - 1 ); i++ )
{
if( mas[ i ][ 0 ] > mas[ i + 1 ][ 0 ] )
{
for( j = 0 ; j < b; j++ )
{
x = mas[ i ][ j ];
mas[ i ][ j ] = mas[ i + 1 ][ j ];
mas[ i + 1 ][ j ] = x;
}
}
}
}
cout<<"\n";
 
//выводим получившуюся матрицу на экран
 
for( i = 0; i < a; i++ )
{
for( j = 0; j < b; j++ )
{
cout<< "%3d", mas[ i ][ j ] ;
}
cout<<"\n";
}
getch();
}
У меня все заработало, НО.... зависает и пишет ошибку
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
30.06.2014, 20:55
Ты неправильно printf заменил, лучше бы оставил её. cin и cout строки форматирования не используют, т. е. должно быть
C++
1
cin >> a >> b;
и т. д.
0
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 18
30.06.2014, 21:00  [ТС]
Но как быть если у меня видит только cin и cout? у меня борланд c++ 3.1



Какой код c++ тогда нужно, напиши пожалуйста


Я не очень силен в этом

Добавлено через 3 минуты
Просто я не силен и не знаю почти этого языка, я буду благодарным если вы мне поможете
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
30.06.2014, 21:02
printf и scanf - древние функции, придуманные раньше потоков, должен видеть твой Борланд C++. Главное, чтобы stdio.h была подключена.
0
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
30.06.2014, 21:03
Цитата Сообщение от Анатолий171 Посмотреть сообщение
C++
1
2
3
4
bool comp(int* v1, int* v2)
{
return *v1 < *v2;
}
Цитата Сообщение от Анатолий171 Посмотреть сообщение
Упорядочить строки матрицы D ( m, n) лексикографически по неубыванию первых k элементов строки.
При сравнении (в функции comp() ) не следует ограничиваться сравнением только первых элементов. Разберитесь, что значит, "по неубыванию первых k элементов строки"
0
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 18
30.06.2014, 21:05  [ТС]
это значит по возрастанию? Я не понимаю почти язык c++ , елки палки ...
Мне просто нужно чтобы вы помогли подкорректировать код чтобы программа заработала

А вот последним вопросом вы меня озадачили, я не совсем понимаю это
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
30.06.2014, 21:07
Если не понимаешь, зачем меняешь ввод/вывод. Добейся, чтобы работало хотя бы то, что есть. printf работает даже в самых древних средах.
0
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
30.06.2014, 21:11
Цитата Сообщение от Анатолий171 Посмотреть сообщение
C++
1
mas = new int * [n];
Цитата Сообщение от Анатолий171 Посмотреть сообщение
C++
1
std::sort(mas, mas + m, &comp);
mas - массив из n элементов. Значит, при вызове sort() должно быть mas+n.
0
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 18
30.06.2014, 21:17  [ТС]
У меня вылетает ошибка и зависает , даже ошибки не пишет


Меняю потому что в институте работает на cin и cout
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
30.06.2014, 21:17
Вот так на cin и cout:
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.h>
#include <stdlib.h>
#include <conio.h>
 
void main()
{
int mas[ 50 ][ 50 ]; 
 
//инициализируем массив
 
cout << "Vvedite razmer matrici\n";
srand( 1 );
 
//получаем от пользователя реальные размеры массива
 
int i, j, a, b; cin >> a >> b; 
for( i = 0; i < a; i++ )
{
for( j = 0; j < b; j++ )
{
 
//заполняем матрицу с помощью генератора псевдослучайных чисел
 
mas[ i ][ j ] = ( double )rand() / ( RAND_MAX + 1 ) * 99 + 1; 
 
//выводим исходную матрицу
 
cout<< mas[ i ][ j ] ;
}
cout<<"\n";
}
int x,y;
 
//применяем пузырьковый метод сортировки 
 
for( y = 0; y < a; y++ )
{
for ( i = 0; i < ( a - 1 ); i++ )
{
if( mas[ i ][ 0 ] > mas[ i + 1 ][ 0 ] )
{
for( j = 0 ; j < b; j++ )
{
x = mas[ i ][ j ];
mas[ i ][ j ] = mas[ i + 1 ][ j ];
mas[ i + 1 ][ j ] = x;
}
}
}
}
cout<<"\n";
 
//выводим получившуюся матрицу на экран
 
for( i = 0; i < a; i++ )
{
for( j = 0; j < b; j++ )
{
cout<< mas[ i ][ j ] ;
}
cout<<"\n";
}
getch();
}
0
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 18
30.06.2014, 21:21  [ТС]
Выдает ошибку при использовании стека в модуле...
0
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
30.06.2014, 21:22
Цитата Сообщение от Анатолий171 Посмотреть сообщение
зависает , даже ошибки не пишет
О какой программе идёт речь? Какая зависает, первая или вторая?
Можно добавить контрольные точки, чтобы определить, в какой строке зависает. Например, добавим контрольную точку перед и после первого цикла for( ... i<a ... ), посмотрим, чему равны a, b.
0
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 18
30.06.2014, 21:34  [ТС]
Последняя просто зависает и пишет ошибку что-то в стеке с модулем или типа того



Дело в том, что я не помню как проверить чему равно


я попробывал вставить cout<<i;
Ну после цикла for чему равно i
, ошибку выдал

Добавлено через 8 минут
Еще раз говорю, что борланд c++ 3.1 чудной, он некоторых функций не понимает


Ну по крайней мере я так выяснил судя по созданию других программ
0
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
30.06.2014, 21:39
Цитата Сообщение от Анатолий171 Посмотреть сообщение
Последняя просто зависает
Чему равны a, b, когда зависает?
0
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 18
30.06.2014, 21:43  [ТС]
Ничему они не равны, программа зависет, написана ошибка

Ошибка в приложении
NONAME01 вызвал ошибку при использовании стека в модуле KRNL386.EXE в 0001:2FC4.

и написано, нажмите закрыть
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
30.06.2014, 21:45
Так может проблема в самой среде, а не в программе?
0
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 18
30.06.2014, 22:04  [ТС]
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
#include <iostream.h>
main()
{
int i;
float y,x,x1,b1,b2,b3,b;
cout<<"Vvedite x1"<<endl;
cin>>x1;
cout<<"Vvedite b1 b2 b3"<<endl;
cin>>b1>>b2>>b3;
for(i=1;i<=10-1;i++) x=x+0.5;
x=x+x1;
b=b1+b2+b3;
y=x+b;
cout<<"y="<<y<<endl;
return 0;
}
 
 
 
 
#include<iostream.h>
#include <stdio.h>
#include <conio.h>
void main()
{
    int osn, 
        n,   
        cn,  
        r;   
             
    char st[17];
    int i;
 
    cout<<"Vvedite hislo v desatihnoy sisteme"<<endl;
    cin>>n;
    cout<<"Vvedite osnovanie sistemi shisleniya"<<endl;
    cin>>osn;
 
    cn = n;
    st[16] ='\0';
    i = 15;
    do
    {
      r = n  % osn;
      n = n / osn;
      st[i--] = r + 48;
    }
    while ( n > 0);
 
    i++;
    int j = 0;
    while(st[i]) st[j++] = st[i++];
    st[j] = '\0';
 
    st[i--] = ' ';
    cout <<" Desatihnoe hislo "<<cn<<" sootvetstvyet hisly "<<st<<" v "<<osn<<"-noy sisteme shisleniya"<<endl;
    getch();
}
Я так не думаю так как я создавал и мне помогали создавать маленькие програмки и я создавал там же программу шифрования, правда немного кривую, но все же они все работали

А эта нет

Добавлено через 14 минут
Нет, пробую и пробую, пишет ошибку... В стеке
0
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
30.06.2014, 22:05
Цитата Сообщение от Анатолий171 Посмотреть сообщение
Последняя просто зависает
Программа не "просто зависает". Она зависает в какой-то строке, в результате выполнения какой-то команды. (Может быть, даже, до начала выполнения функции main().)
Такая программа зависает?
C++
1
2
3
4
5
6
int main()
{
    int mas[ 50 ][ 50 ]; 
 
    return 0;
}
Такая зависает?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int mas[ 50 ][ 50 ]; 
 
    printf( "Vvedite razmer matrici\n" );
    srand( 624 );
    //srand( 1 );
 
    int i, j, a, b; 
    scanf( "%d  %d", &a, &b ); 
 
    return 0;
}
А такая?
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
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int mas[ 50 ][ 50 ]; 
 
    printf( "Vvedite razmer matrici\n" );
    srand( 624 );
    //srand( 1 );
 
    int i, j, a, b; 
    scanf( "%d  %d", &a, &b ); 
 
    for( i = 0; i < a; i++ )
    {
        for( j = 0; j < b; j++ )
        {
            mas[ i ][ j ] = ( double )rand() / ( RAND_MAX + 1 ) * 99 + 1; 
            printf( "%3d", mas[ i ][ j ] );
        }
        printf("\n");
    }
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.06.2014, 22:05
Помогаю со студенческими работами здесь

Упорядочить строки матрицы по неубыванию суммы элементов каждой строки
17.22. Дан двумерный массив. Разместить его строки так, чтобы при их просмотре сверху вниз: а) суммы значений в каждой строке...

Упорядочить строки матрицы по неубыванию суммы их элементов
дана вещественная матрица размером N*M. Упорядочить ее строки по неубыванию суммы их элементов

Упорядочить строки матрицы по неубыванию их наибольших элементов (Delphi->C++)
Дана матрица размером NxM. Упорядочить ее строки по неубыванию их наибольших элементов. program N60094766; {$APPTYPE CONSOLE} ...

Упорядочить строки матрицы по неубыванию сумм положительных элементов
Переформировать матрицу таким образом,что бы ее строки располагались в порядке неубывания сумм их положительных элементов.

Упорядочить строки матрицы по неубыванию сумм элементов строк (методом простых вставок)
Дана действительная матрица размера MхN. Упорядочить строки матрицы по неубыванию значений сумм элементов строк методом простых вставок...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД 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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru