Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Замена произвольных столбцов местами(массив)

Ответить
Настройки темы
C/C++ - Замена произвольных столбцов местами(массив)

Пользователь


Сообщения: 98
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: Drongo
Дата: 20-03-2009
Описание: Вроде бы не новичок уже, используем тег [code]...[/code]
Всем привет, хотел посоветоваться решаю тут задачку такого плана:

Дана произвольная матрица размером 10:10 поменять произвольные значение столбцов местами.

Вобщем я думал как ето лучше сделать и вот примерно что надумал:

Код: Выделить весь код
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>

int main()
{
  int arr[10][10]={{0,0}};
  int i,j;
  int sum = 0;
  randomize;
  for(i = 0; i < 10; i++)
  for(j=0; j< 10; j++)
  {

  arr[i][j]=random(5);

  }

  printf("Massiv: n [ ");
  for(i = 0; i < 10; i++)
  for(j=0; j< 10; j++)
  printf("%i ",arr[i][j]);
  printf("]\n"); // вывод на экран нашего массива
Ну теперь сама задача я пока не делал програмкой опишу словами саму идею

Думаю,что случайно заменять не совсем получится(или я не знаю как )
Вобщем я хочу использовать псевдослучайную замену.
Тоесть сравнивать к примеру первое значение массива со всеми последующими если оно ну допустим arr[0][0]>arr[i][j](соответственно условие в цикле) значит переместить его в конец массива(тоесть присвоит arr[0][0]==arr[9][9])

Вобщем хотел спросить, таким методом мне прийдётся каждое значение массива сравнивать с последующим и переносить его в конец, а если к примеру массив 100на100 то такой метод вызывает у меня сомнение может подскажите что то более практичное!

Зарание благодарю!!!

Отправлено: 16:04, 20-03-2009

 

Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


ShadowMas, Убери строку, что я выделил.

Код: Выделить весь код
...
for(int i = 0; i < 10; i++){
     temp = arr[i][j];
     arr[i][j] = arr[i][a];
     arr[i][a] = temp;

      cout<<endl; // Лишняя
      }
...
И добавь проверку выбора столбцов, иначе если ввести можно и -1 и 100 и выход за границы массива тебе обеспечен.
Код: Выделить весь код
...
  cout<<"ukazite perviy stolbik"<<endl;
  cin>>j;
  while(j < 0 || j > 9){
     cout<<"ukazite perviy stolbik 1 = ";
     cin>>j;
    }

  cout<<"ukazite vtoroy stolbik"<<endl;
  cin>>a;
  while(a < 0 || a > 9){
     cout<<"ukazite perviy stolbik 2 = ";
     cin>>a;
    }

...
И ещё, скобку поставить выше return, а getch(); вынести за скобку, иначе после вывода первого рядка массива, после нажатия любой клавиши, окно закроется.
Код: Выделить весь код
...
    if(j % 10 == 0)
      cout<<endl;
    }
    getch();
  
    return 0;
}
Цитата ShadowMas:
Код: Выделить весь код
cout<<"\n\n Perenosim stolbsi\n";
 cout<<"ukazite perviy stolbik"<<endl;
»
Если интересно сделать вместо транслита-латиницы выводить кирилицу, то вот совсем рядом есть тема - Кирилица в консоли

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 20:38, 21-03-2009 | #11



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 98
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо за советы, да всё исправлю,а насчёт выхода за граници я как то даже и не подумал

Отправлено: 21:48, 22-03-2009 | #12



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Замена произвольных столбцов местами(массив)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] как отключить показ дополнительных столбцов в проводнике? ALEXEY_DFD Microsoft Windows 2000/XP 5 31-03-2016 18:58
Диски поменялись местами cheap Хочу все знать 3 15-11-2005 17:28
MsOffice | Свойства столбцов в Access sdiplo Программирование и базы данных 1 31-01-2005 09:45
Поменять местами харды DeadAdmin Общий по Linux 7 17-08-2003 13:47
ListView редактирование столбцов lesco Программирование и базы данных 2 11-04-2003 22:23




 
Переход