Показать сообщение отдельно
Старый 26.05.2006, 00:20
Скрипун вне форума Посмотреть профиль Отправить личное сообщение для Скрипун Найти все сообщения от Скрипун
  № 11  
Ответить с цитированием
Скрипун
 
Аватар для Скрипун

Регистрация: Aug 2005
Сообщений: 687
Записей в блоге: 1
Отправить сообщение для Скрипун с помощью ICQ
Код:
///////////////////////////////////////////////
/////////////////Skripun to Russian flasher////////////////////
///////////25-05-06////////22-20/////////
///////////////////////////////////////////////
// Модули
// Ввод-Вывод
#include <iostream.h> 
#include <stdio.h>
// RAND & SRAND
#include <stdlib.h>
//  TIME
#include <time.h>
int main(void)
{
// Начнём... 
 cout << "--------------------------------" << "\n";
// Размер массива
 const unsigned int sz=10;
// время выдержки.Чем больше сам массив тем больше должно быть для более эффективного
// разброса.Можно поставить на sz.Или тоже через рандом, но не меньше чем число элементов массива!
 int looptime=100;
// unsigned int looptime=sz;
// Преинициализация массива
// Так
// int mas[]={0,1,2,3,4,5,6,7,8,9};
// Или так
 int mas[sz];for (int i=0;i<sz;i++) mas[i]=i;
 
 
// Для замены мест
 int r1,r2;
// Новая стартовая точка для Rand ! 
 srand((unsigned)time(NULL));
 
 for ( i=0;i<looptime;i++)
 {
 // Находим, какие элементы меняем местами 
  do 
  {
  r1=rand()%10;
  r2=rand()%10;}
  while (r1==r2) ;
 // Выводим по приколу меняемые элементы (паранойя) 
  cout << "mas[" << r1 << "]=" << mas[r1] ; 
  cout << "   mas[" << r2 << "]=" << mas[r2] ; 
 // Меняем местами (не C-прогеру будет сложно понять)
 // Операция модуль 2 (Bitwise-exclusive-OR assignment)
 // РАБОТАЕТ ТОЛЬКО С ЦЕЛОЧИСЛЕННЫМИ ТИПАМИ!!!!!!!!!!!!! 
  mas[r1]^= mas[r2]^=mas[r1]^=mas[r2];
 // Альтернативная замена - ВЕЗДЕ РАБОТАЕТ!!!!!!!!!!!!!!
 /*
  mas[r1]=mas[r1]+mas[r2];
  mas[r2]=mas[r1]-mas[r2];
  mas[r1]=mas[r1]-mas[r2];
 */
 // Результат замены (ещё паранойя) 
  cout << " changed on  mas[" << r1 << "]=" << mas[r1] ; 
  cout << "   mas[" << r2 << "]=" << mas[r2] << "\n"; 
 };
// Выводим и радуемся жизни
 for (i=0;i<sz;i++)
 {
  cout << mas[i] << "\n";
 };
// Это ради крутости - 0 значит всё в порядке!
 return 0;
// P.S.: комментарии писались много дольше самой проги!!!
}


Последний раз редактировалось Nirth; 26.05.2006 в 09:44.