Замена произвольных столбцов местами(массив)
Всем привет, хотел посоветоваться решаю тут задачку такого плана:
Дана произвольная матрица размером 10:10 поменять произвольные значение столбцов местами. Вобщем я думал как ето лучше сделать и вот примерно что надумал: Код:
#include <stdio.h> Думаю,что случайно заменять не совсем получится(или я не знаю как :)) Вобщем я хочу использовать псевдослучайную замену. Тоесть сравнивать к примеру первое значение массива со всеми последующими если оно ну допустим arr[0][0]>arr[i][j](соответственно условие в цикле) значит переместить его в конец массива(тоесть присвоит arr[0][0]==arr[9][9]) Вобщем хотел спросить, таким методом мне прийдётся каждое значение массива сравнивать с последующим и переносить его в конец, а если к примеру массив 100на100 то такой метод вызывает у меня сомнение :( может подскажите что то более практичное! Зарание благодарю!!! |
ShadowMas, заполнять случайными числами элементами массива получается, так почему не получится тогда сделать выборку по столбцам массива? Главное проверять, что б во второй раз одно и тоже число не выпало, а то менять не с чем будет.
Насчёт псевдослучайной замены, это основываясь на предыдущей генерации случайных чисел массиву идёт справнее что больше с тем и работать? Как уже выше предложил - тем же методом что и заполняются элементы массива с помощью функции random(). |
Честно говоря, задачу не совсем понял. :dont-know
Цитата:
Цитата:
Немного бы код изменил, выделил цветом что добавил, при выполнении, будет наглядно видно содержимое массива, не в ряд, а десять строк в десять рядов. Код:
... |
Да спасибо так конечно будет нагляднее,я как то не подумал :).
Да я извиняюсь за не совсем коректную постановку вопроса. Вообщем суть в том что бы в массиве размерностью 10на10 arr[10][10] ,случайным образом поменять местами значения столбиков ну к примеру arr[0][0] меняем (случайным образом) с arr[0][9] или arr[1][7] или с любым другим arr[i][j] Дело в том что я не как не могу условие придумать оптимальное, что бы не приходилось каждый раз сравнивать одно значение с последующими и переносить его в конец или там на шаг в перёд или ещё куда то. Это вообще то не очень удобно каждый раз сравнивать, а вот как описать проще не как не придумаю :) |
Извиняюсь если неправильно понял снова, но как понял, так и решил. Цель, перебросить все значения случайного столбца массива в другой столбец. Короче поменять содержимое двух столбцов. Красным цветом выделил, что нужно дописать. Единственно, можно вместо конкретных значений номеров столбца, генерировать случайные.
|
Да спасибо, так и есть :)
Только я так понял "Единственно, можно вместо конкретных значений номеров столбца, генерировать случайные" Имеется введу что вместо arr[i][5]; можно записать примерно так Код:
for(int i = 0; i < 10; i++){ |
Drongo, ShadowMas, можно обойтись и без переменной temp
Код:
arr[i][0]=arr[i][j]-arr[i][0]; |
ShadowMas, В таком виде, вместо каждого следующего элемента одного столбца, будет генерироваться каждый раз, разный.
Код:
... Код:
... Код:
... |
Спасибо всем за помощь!!!
Ушел пробывать :up |
Да люди спасибо за помощь вот что получилось :
Код:
#include <stdio.h> |
ShadowMas, Убери строку, что я выделил.
Код:
... Код:
... Код:
... Цитата:
|
Спасибо за советы, да всё исправлю,а насчёт выхода за граници я как то даже и не подумал :yes:
|
Время: 04:53. |
Время: 04:53.
© OSzone.net 2001-