Форум программистов, компьютерный форум CyberForum.ru

обход массива рендом. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа производит неправильный вывод http://www.cyberforum.ru/cpp-beginners/thread42956.html
Помогите найти ошибку!!! Заранее спасибо!!! #include <iostream.h> main (void) { int a = 1; void f() { int b = 1;
C++ Никак не могу найти ошибку #include<iostream.h> #include<conio.h> #include<math.h> #include<STDLIB.H> #include<COMPLEX.H> main() { const m=7, n=7; m5: int A,i,j,F; clrscr(); http://www.cyberforum.ru/cpp-beginners/thread42919.html
C++ friend функция С++ на MSVC 6.0
Переписал из книги С. Прата такое : class Port { private: int bootles; ....... public: ....... friend ostream & operator<<(ostream & os, const Port & p); };
C++ как остановить программу?
я написал простенькую программу и у меня появилась проблема. когда запускаю программу вожу число программа с ним чото делает а кода выводится результат окно закрывается и я не успеваю глянуть на результат.
C++ исключения http://www.cyberforum.ru/cpp-beginners/thread42824.html
программа реализует проверку на двоичное число: #include <iostream> #include <string.h> using namespace std; //класс исключений class error{ public: char str; //конструктор, который присваивает строке stri значение строки str
C++ переставить елементы массива Задали задачу: В массиве переставить значения в обратном порядке. Тоесть(1,2,3,4,5)надо перевернуть(5,4,3,2,1) Написал код ,вроде должен работать, но не работает. const int n=5; int a={1,2,3,4,5},buf; for(int i=0;i<n/2;i++) { bool f=true; for(int j=n-1;j>n/2;j--) подробнее

Показать сообщение отдельно
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
06.07.2009, 05:30     обход массива рендом.
Вот для такого случая я специально берёг два алгоритма,которые мне когда-то выложили на одном форуме.Я их для истории сохранил )
Уже не помню,работают ли оба корректно,но задача обоих была такова - есть 54 карты в колоде карт,необходимо заполнить массив случайными числами,каждое из которых впоследствии будет индексом для карты в колоде Вот этот мне больше всего понравился,ибо оригинально сделан,на мой взгляд:
Довольно оригинальный
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
#include <iostream>
 
using namespace std;
 
int main(int argc, char* argv[])
 
{
       int koloda[54] ;
        int prom[54];
 
        srand((unsigned)time( NULL ) );
 
        for (int i=0;i<54;i++)
       {
 
             int k=((rand()%(54-i)));
             int j=0;
 
             while ((j<=(i-1))&&(prom[j]<=k))
             {
                 k=k+1;
                 j=j+1;
             }
            koloda[ i ] = k ;
 
            while (j<=i)
            {
                  int a=prom[j];
 
                  prom[j]=k;
                  k=a;
                  j=j+1;
            }
       }
 
        for (int i=0;i<54;i++)
             cout<<koloda[i]<<" ";
 
        cin.get();
        return 0;
}

Ну и ещё один:
Ещё один,с bool массивом
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
#include <iostream>
 
using namespace std;
 
int main(int argc, char* argv[])
 
{
       srand((unsigned)time( NULL ) );
        bool p[54];
        for(int j=0;j<54;j++)
            p[j]=false;
 
        int Cards[54];
 
        for(int i=0;i<54;i++)
        {
              int k=((rand()%(54)));
 
              while(p[k]==true)
              {
                     k=((rand()%(54)));
                      cout<<".";
              }
              p[k]=true;
 
              Cards[i]=k;cout<<Cards[i]<<" ";
        }
 
        cin.get();
        return 0;
}

Тут как раз используется массив bool
 
Текущее время: 01:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru