3 / 3 / 5
Регистрация: 18.01.2011
Сообщений: 131
1

Перестроить матрицу

29.09.2012, 17:57. Показов 1116. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть матрица

1, 1, 5, 3, 8
4, 1, 6, 4, 4
0, 5, 1, 7, 9
8, 1, 3, 1, 1
9, 9, 1, 2, 9

в матрице надо подсчитать количество одинаковых элементов в каждой строке
в данной матрице будет :
2
3
0
3
3

и эту матрице надо так переделать, что б элементы в ней были в таком положении
0
2
3
3
3

то есть вот такого плана:
0, 5, 1, 7, 9
1, 1, 5, 3, 8
4, 1, 6, 4, 4
8, 1, 3, 1, 1
9, 9, 1, 2, 9

количество одинаковых элементов я подсчитал, а как дальше я хз
C++
1
2
3
4
5
6
7
8
9
10
11
12
            int m[5];
 
            int count1 = 0;
            int c = 0;
            for (int i = 0; i < 5; i++) {
                count1 = 0;
                for (int j = 1; j < 5; j++) {
                    if (matrix[i][j - 1] == matrix[i][j])
                        count1++;
                }
                m[i] = count1;
            }
0
29.09.2012, 17:57
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.09.2012, 17:57
Ответы с готовыми решениями:

Построить линейный список из входной последовательности чисел и перестроить его
Задание выполнить, применяя списки двух видов: стека и очереди. Построить линейный список из входной последовательности чисел....

Готовый код.Как перестроить структуру под класс.wxDex-C++
Всем доброго вечера и хорошего настроения! Знатоки C/C++ подскажите как &quot;переделать&quot; готовую программку для использования её с...

Перестроить список так, чтобы значения увеличивались от головы списка к его концу
1.В файле хранятся данные в виде записей формата R. R УЗЕЛ УСТ-ВА Устройство Номер узла Кол-во узлов Вес - М ...

9
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
29.09.2012, 18:02 2
Цитата Сообщение от botasa Посмотреть сообщение
что б элементы в ней были в таком положении
Сортировка самая обыкновенная. Только переставлять будешь не элементы, а строки матрицы, образно.
0
3 / 3 / 5
Регистрация: 18.01.2011
Сообщений: 131
29.09.2012, 18:19  [ТС] 3
ну сортировку бульбашкой к примеру могу сделать над самыми элементами массива, но как целые строки переставить местами, и пользоваться дополнительным массовом из количеством элементов понятия не имею
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
29.09.2012, 18:22 4
Цитата Сообщение от botasa Посмотреть сообщение
но как целые строки переставить местами
ты можешь переставить первый элемент, например, второй строки, с первым элементом первой?
можно делать указателями, тогда будет достаточно переставить их )))) но это дела не меняет.
0
3 / 3 / 5
Регистрация: 18.01.2011
Сообщений: 131
29.09.2012, 18:36  [ТС] 5
int tmp = m[1][0];
m[1][0] = m[0][0];
m[0][0] = tmp;

переставить элементы это не проблема, но не могу понять каким образом это делать из 2-м массивом, где записаны количества повторных элементов в каждой строке

задача мне мозги выносит ... и это вопше лаба по C# там практически нету УКАЗАТЕЛЕЙ да и не люблю я указатели =) тут код на С++ переписал, так как больше народа по С++ читает...
0
 Аватар для m1Rr0r
250 / 232 / 46
Регистрация: 05.02.2010
Сообщений: 3,288
29.09.2012, 18:44 6
Swap(massiv[row1][j], massiv[row2][j]);

Добавлено через 4 минуты
Например тебе нужно поменять местами строку 0 и строку 4.
берешь первый эл строки 0, меняешь с первым элементом строки 4, и так до i-того, пока всю строку не пробежишь
C++
1
2
for(int i = 0; i < sizeRow; i++)//sizeRow в данном случае количество столбцов в матрице
Swap(mas[0][i], mas[4][i])
ну а Swap выглядит примерно так:
C++
1
2
3
4
5
void Swap(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}
0
39 / 39 / 5
Регистрация: 14.09.2012
Сообщений: 85
29.09.2012, 18:46 7
Если массив - динамический, то можно просто менять адреса строк.
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>
using namespace std;
 
int eqInStr(int *m, int n)
{
    int eq = 0;
    for(int i=0; i<n; i++)
        for(int j=i; j<n; j++)
            if(m[i] == m[j] && i!=j) eq++;
    return eq;
}
 
void swap(int *m1, int *m2)
{
    int *temp = m1;
    m1 = m2;
    m2 = temp;
}
 
void main()
{
    int n = 5;
    int **mm = new int*[n];             //обьявление массива n*n элементов, заполнение случайными числами
    for(int i=0; i<n; i++)              
    {
        mm[i] = new int[n];
        for(int j=0; j<n; j++)
            mm[i][j] = rand()%10;
    }
    for(int i=0; i<n; i++)              //вывод массива
    {
        for(int j=0; j<n; j++)
            cout<<mm[i][j]<<' ';
        cout<<endl;
    }
    cout<<endl;
    int *eq = new int[n];               //создание таблицы повторений
    for(int i=0; i<n; i++)
        eq[i] = eqInStr(mm[i], n);
    for(int i=0; i<n; i++)
        cout<<eq[i]<<' ';
    cout<<endl<<endl;
    for(int i=0; i<n; i++)              //сортировка
        for(int j=i; j<n; j++)
            if(eq[i] > eq[j])
            {
                int temp = eq[i];
                eq[i] = eq[j];
                eq[j] = temp;
                int *tempm = mm[i];
                mm[i] = mm[j];
                mm[j] = tempm;
            }
    for(int i=0; i<n; i++)
        cout<<eq[i]<<' ';
    cout<<endl<<endl;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
            cout<<mm[i][j]<<' ';
        cout<<endl;
    }
        system("pause");
}
0
3 / 3 / 5
Регистрация: 18.01.2011
Сообщений: 131
29.09.2012, 18:46  [ТС] 8
да как свапнуть элементы я знаю, я не знаю как вот это сделать :
Расположить строки заданной матрицы по возрастанию количества одинаковых элементов в каждой строке.
0
39 / 39 / 5
Регистрация: 14.09.2012
Сообщений: 85
29.09.2012, 18:53 9
Где я пишу про свап элементов? У меня меняются строки, откомпилируй и посмотри.
0
3 / 3 / 5
Регистрация: 18.01.2011
Сообщений: 131
29.09.2012, 19:41  [ТС] 10
ша попробую на C# переписать и отпишу =)

Добавлено через 40 минут
чет вот тут не могу разобраться

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 for (int i = 0; i < 5; i++)
            {
                for (int j = i; j < 5; j++)
                {
                    if (m[i] > m[j])
                    {
 
                        int tmp = m[i];
                        m[i] = m[j];
                        m[j] = tmp;
 
                        int temp = matrix[i, i];
                        matrix[i, i] = matrix[j, j];
                        matrix[j, j] = temp;
                    }
                }
}

вроде тут не так идет это все
C#
1
2
3
int temp = matrix[i, i];
matrix[i, i] = matrix[j, j];
matrix[j, j] = temp;
0
29.09.2012, 19:41
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.09.2012, 19:41
Помогаю со студенческими работами здесь

Непонятно условие задачи: Вывести исходную матрицу, преобразованную матрицу и вектор Х.
Здравствуйте, помогите пожалуйста понять, что от меня хотят в этом условии: &quot;Строки вещественной матрицы упорядочить по возрастанию ее...

Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке
Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке.

Получить матрицу из чисел, заполняющих матрицу по линиям, параллельным главной диагонали
Получить матрицу A=(aij), i,j=1..n, n&lt;=100, элементами которой является ряд натуральных чисел, заполняющих матрицу по линиям параллельным...

Нужно написать пример умножения вектора на вектор, матрицу на матрицу
Нужно написать пример умножения вектора на вектор, матрицу на матрицу, умножения вектора на матрицу, и конечно же сделать проверки. Спасибо...

Преобразовать матрицу X(n,m) в матрицу X(a,b) путём удаления лишних строк и столбцов
Преобразовать матрицу X(n,m) в матрицу X(a,b) путём удаления лишних строк и столбцов (n&gt;a,m&gt;b). Порядок удаления: 1) с начала; ...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Использование кэша Laravel - полный гайд
bytestream 18.02.2025
Кэширование - один из наиболее эффективных способов повышения производительности веб-приложений. В современном мире, где скорость загрузки страниц напрямую влияет на удержание пользователей и. . .
Создаем REST API в Laravel с аутентификацией и Passport
bytestream 18.02.2025
Разработка современных веб-приложений все чаще требует создания надежного и хорошо структурированного API. REST API стал стандартом де-факто для построения взаимодействия между клиентской и серверной. . .
Пайплайны в Laravel - полный гайд
bytestream 18.02.2025
Разработка современных веб-приложений часто требует обработки сложных процессов, состоящих из множества последовательных шагов. Например, при создании системы комментариев может потребоваться. . .
Как правильно использовать @required в Symfony
bytestream 18.02.2025
При разработке приложений на Symfony мы часто сталкиваемся с необходимостью внедрения зависимостей. Фреймворк предоставляет несколько способов управления этим процессом, и одним из таких инструментов. . .
Система безопасности в Laravel: возможности и примеры
Wired 18.02.2025
Каждый день появляются новые виды атак и уязвимостей, которые могут поставить под угрозу конфиденциальные данные пользователей и функционирование всей системы. В этом контексте выбор надежного. . .
Давайте сравним Django и Laravel
Wired 18.02.2025
Django и Laravel - два мощных инструмента, которые часто сравнивают между собой. Оба фреймворка предлагают разработчикам богатый набор возможностей для создания масштабируемых веб-приложений, но. . .
Laravel или React - что лучше?
Wired 18.02.2025
В разработке веб выбор правильного инструмента часто определяет успех всего проекта. Особенно интересным представляется сравнение Laravel и React - двух популярных технологий, которые часто. . .
Laravel 11: новые возможности, гайд по обновлению
Wired 18.02.2025
Laravel 11 - это новая масштабная версия одного из самых популярных PHP-фреймворков, выпущенная в марте 2024 года. Эта версия продолжает традицию внедрения передовых технологий и методологий. . .
Миграции в Laravel
Wired 18.02.2025
Разработка веб-приложений на Laravel неразрывно связана с управлением структурой базы данных. При работе над проектом часто возникает необходимость вносить изменения в схему базы данных - добавлять. . .
Аутентификация в Laravel
Wired 18.02.2025
В современном мире веб-разработки безопасность пользовательских данных становится критически важным аспектом любого приложения. Laravel, как один из самых популярных PHP-фреймворков, предоставляет. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru