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

В матрице переставить столбцы от 0-4 и 0-6

28.12.2013, 14:07. Показов 1128. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте, задача работает , но препод требует вывести исходный массив помимо получившегося. Помогите пожалуйста срочно(
Пробовал через print f matrix , не выходит(
исправьте код.

Code
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
#include <iostream>
#include <math.h>
const int c_rows = 4;
const int c_cols = 6;
int GetIndex(int row, int col, int rows = c_rows)
{
  return col*rows + row;
}
int Summ(int matrix[], int col, int rows = c_rows)
{
  int res = 0;
  for (int row=0; row<rows; ++row)
  {
    res += matrix[GetIndex(row, col)];
  }
  return res;
}
int main()
{
  //matrix = {r1c1, r2c1, r3c1, r4c1, r1c2 ...}
  int matrix[c_rows*c_cols];
  for (int index=0; index<c_cols*c_rows; ++index)
    matrix[index] =-round(fabs(sin(index)*10000)) + 10000;
  for (int col=0; col<c_cols; ++col)
  
  {
    int maxcol = col;
    for (int col2=col+1; col2<c_cols; ++col2)
      if (Summ(matrix, maxcol)>Summ(matrix, col2))
        maxcol = col2;
    if (maxcol != col)
      for (int row=0; row<c_rows; ++row)
      {
        int mem = matrix[GetIndex(row, col)];
        matrix[GetIndex(row, col)] = matrix[GetIndex(row, maxcol)];
        matrix[GetIndex(row, maxcol)] = mem;
      }
  }
  std::cout << "Matrix:\n";
  for (int row=0; row<c_rows; ++row)
  {
    for (int col=0; col<c_cols; ++col)
      std::cout << matrix[GetIndex(row, col)] << " ";
    std::cout << "\n";
  }
  std::cout << "Summs:\n";
  for (int col=0; col<c_cols; ++col)
    std::cout << Summ(matrix, col) << " ";
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.12.2013, 14:07
Ответы с готовыми решениями:

В матрице M x N переставить столбцы
В матрице M x N переставить столбцы так , чтобы получилась последовательность k1=&gt;k2=&gt;…kn, где kj – количество положительных...

Переставить в матрице четные и нечетные столбцы
Даны две матрицы размерности 7х7 целых случайных чисел. Переставить в них четные и нечетные столбцы. Собственно вопрос: Как переставить...

В матрице найти максимум и минимум, переставить столбцы и строки
Дана матрица А(nxn). Написать программу, которая находит максимальный и минимальный элементы этой матрицы и переставляет столбцы и строки...

5
Модератор
Эксперт С++
 Аватар для zss
13780 / 10973 / 6491
Регистрация: 18.12.2011
Сообщений: 29,259
28.12.2013, 14:22
У Вас же есть этот код
C++
1
2
3
4
5
6
7
std::cout << "Matrix:\n";
  for (int row=0; row<c_rows; ++row)
  {
    for (int col=0; col<c_cols; ++col)
      std::cout << matrix[GetIndex(row, col)] << " ";
    std::cout << "\n";
  }
0
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 53
28.12.2013, 14:35  [ТС]
zss, вы имеете ввиду, что это и есть исходный массив? Препод заявил , что ему нужен исходный массив, а у меня при запуске программы уже отсоритрованный массив по его словам.... Толи он не понимает чего или я?
0
Модератор
Эксперт С++
 Аватар для zss
13780 / 10973 / 6491
Регистрация: 18.12.2011
Сообщений: 29,259
28.12.2013, 14:40
Все зависит от последовательности выполнения.
Массив, ведь, один и тот же.
Вставьте этот код после строки 23, вот и выведете исходный массив.
0
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 53
28.12.2013, 14:51  [ТС]
zss, сделал как вы сказали, но не понимаю , что вижу . Появился массив после ранее созданного, но его числа ...не понятны( Попробуйте пожалуйста скомпилировать если есть возможность и скажите что у вас получилось.

Добавлено через 5 минут
zss,
если я правильно понял, то тот код который вы дали это исходный массив, а какой тогда обработанный?
0
Модератор
Эксперт С++
 Аватар для zss
13780 / 10973 / 6491
Регистрация: 18.12.2011
Сообщений: 29,259
28.12.2013, 14:58
Мне пришлось исправить строку 23 (нет функции round):
C++
1
    matrix[index] =-int(rand()/(double)RAND_MAX*10000.) -500;
А остальное работает

Добавлено через 29 секунд
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
#include <iostream>
#include <math.h>
const int c_rows = 4;
const int c_cols = 6;
int GetIndex(int row, int col, int rows = c_rows)
{
  return col*rows + row;
}
int Summ(int matrix[], int col, int rows = c_rows)
{
  int res = 0;
  for (int row=0; row<rows; ++row)
  {
    res += matrix[GetIndex(row, col)];
  }
  return res;
}
int main()
{
  //matrix = {r1c1, r2c1, r3c1, r4c1, r1c2 ...}
  int matrix[c_rows*c_cols];
  for (int index=0; index<c_cols*c_rows; ++index)
    matrix[index] =-int(rand()/(double)RAND_MAX*10000.) -500;
  std::cout << "Matrix:\n";
  for (int row=0; row<c_rows; ++row)
  {
    for (int col=0; col<c_cols; ++col)
      std::cout << matrix[GetIndex(row, col)] << " ";
    std::cout << "\n";
  }
  for (int col=0; col<c_cols; ++col)
  
  {
    int maxcol = col;
    for (int col2=col+1; col2<c_cols; ++col2)
      if (Summ(matrix, maxcol)>Summ(matrix, col2))
        maxcol = col2;
    if (maxcol != col)
      for (int row=0; row<c_rows; ++row)
      {
        int mem = matrix[GetIndex(row, col)];
        matrix[GetIndex(row, col)] = matrix[GetIndex(row, maxcol)];
        matrix[GetIndex(row, maxcol)] = mem;
      }
  }
  std::cout << "Matrix:\n";
  for (int row=0; row<c_rows; ++row)
  {
    for (int col=0; col<c_cols; ++col)
      std::cout << matrix[GetIndex(row, col)] << " ";
    std::cout << "\n";
  }
  std::cout << "Summs:\n";
  for (int col=0; col<c_cols; ++col)
    std::cout << Summ(matrix, col) << " ";
  system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.12.2013, 14:58
Помогаю со студенческими работами здесь

В прямоугольной матрице NxK переставить столбцы в обратном порядке
проверьте прогу плз - В прямоугольной матрице NxK переставить столбцы в обратном порядке #include&lt;stdio.h&gt; #define N 3 ...

Переставить столбцы в матрице по возрастанию сумм элементов в столбцах
Дана разреженная матрицы общего вида(CSS или CSR). Переставить столбцы в матрице по возрастанию сумм элементов в этих столбцах.

Массив: В заданной прямоугольной матрице с количеством строк 2n переставить столбцы в следующем порядке: 1, 2n, 2, 2n–1, 3, 2n–2, … n, n+1
Пожалуйста помогите с задачей! С++ программа Visual Studio В заданной прямоугольной матрице с количеством строк 2n переставить столбцы...

В заданной матрице переставить местами столбцы
В заданной матрице матрицы размером 3х4 переставить местами столбцы: с заданным номером и содержащим максимальный элемент матрицы. ...

В матрице M x N переставить столбцы таким образом
В матрице M x N переставить столбцы таким образом, что бы получилась последовательность t 1≤ t 2≤… t n , где t j –...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru