Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Zazy
45 / 45 / 15
Регистрация: 14.04.2013
Сообщений: 186
#1

Кому не трудно, нужна идея как сделать проще - C++

11.12.2013, 01:35. Просмотров 439. Ответов 1
Метки нет (Все метки)

Всем добра! собственно вот задание
Дана целочисленная матрица A(M,N). Продублировать в матрице каждый столбец,
являющийся перестановкой натуральных чисел от 1 до М.
т.е. что нужно сделать допустим исходный массив
1, 2, 3, 4, 5
2, 1, 8, 9, 0
если столбе равен перестановкой натуральных чисел от 1 до М, дописать этот столбец в конце
результат
1, 2, 3, 4, 5, 1, 2
2, 1, 8, 9, 0, 2, 1
мой алгоритм мне кажется муторным, может кто каких идей подбросит:
А[2][5] =
{{1, 2, 3, 4, 5},
{2, 1, 8, 9, 0}};
Создать два массива размерностью T1[M], T2[M], первый заполнить от 1 до М T1[M] = {1, 2}, во второй массив помещать столбцы массива А1 делать сортировку и сравнивать с T1, если массивы равны счетчик увеличить на 1 (это для создания динамического массива куда будет занесен результат), создаю двумерный динамический массив, еще раз запускаю цикл на сравнения, те что проходят по условию записываю в конец массива (i =1, N + i, это момент еще не до конца продуман) а потом просто заполняю динамический массив элементами A[M][N]
фух надеюсь понятно изложил.
ЗЫ. только идеи, прошу код не писать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2013, 01:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Кому не трудно, нужна идея как сделать проще (C++):

задачи c++ кому не трудно решите - C++
Matrix25. Дана матрица размера M × N. Найти номер ее строки с наибольшей суммой элементов и вывести данный номер, а также значение...

задачи c++ кому не трудно решите - C++
Matrix14. Дана квадратная матрица A порядка M. Начиная с элемента A1,1, вы- вести ее элементы следующим образом («уголками»): все...

Кому не трудно допишите пожалуйста комментарии! - C++
#include <iostream.h> #include <conio.h> #include <math.h> int main () { int i,b=10,k=5,t=0.5,s=100,n=100; int kv,tv; int...

Язык С Кому не трудно! Тема: Оператор варианта - C++
Пожалуйста, кому не трудно. задание такое: По введенной дате вычислить день, который был 14 дней назад

Составьте блок схему пожалуйста кому не трудно - C++
очень надо , просто я не понял эту тему болел , а надо сдавать

Нужно кратенько ответить на билеты к пересдаче, кому не трудно, сегодня был экзамен и завалил !SOS! - C++
нужно кратенько ответить на вопросы из билетов, сёгодня был экзамен, я завалил в эту пятницу пересдача, нужно бы ответы приготовить, а в...

1
Гром
210 / 129 / 11
Регистрация: 20.03.2009
Сообщений: 1,103
Записей в блоге: 16
Завершенные тесты: 1
11.12.2013, 07:53 #2
Кодом, пожалуй, нагляднее будет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const unsigned M = 10;
bool Is1toM(unsigned* arr)
{
bool Found[M] = { false };
for (unsigned i = 0; i < M; ++i)
 {
 unsigned val = arr[i] - 1;
 if (val < 0 || val >= M)   //Вообще-то unsigned не может быть меньше нуля, это для иллюстрации и на случай замены на signed
  return false;
 if (Found[val])
  return false;
 Found[val] = true;
 }
return true;
}
То есть для всех чисел от 1 до М у нас есть флаги в массиве, что данное число уже обнаружено при просмотре входного массива. Если элемент входного массива не есть число от 1 до М - фейл, если обнаруживаем второе вхождение - аналогично.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2013, 07:53
Привет! Вот еще темы с ответами:

Как сделать проще? - C++
Здравствуйте, вот написал программу, которая реализовывает функцию определения значения некоторой элементарной функции, зависящей от...

Как проще всего сделать интерфейс для программы на С++? - C++
Подскажите в какой как и с помощью какой программы проще всего сделать интерфейс для программы написанной на С++ :)

Как можно сделать данный кусок кода меньше и проще? - C++
Задние: Заменить все элементы с четными номерами на значение второго положительного элемента массива. void change() //замена элементов...

Страуструп. Сортировка трех чисел .Как сделать проще код без циклов и массивов? - C++
Напишите программу. предлагающую пользователю ввести три целых числа, а затем выводит их в порядке возрастания, разделяя запятыми ....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.