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

Неправильный рандом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Класс Sentence и сортировка строки по алфавиту http://www.cyberforum.ru/cpp-beginners/thread897776.html
#include <stdio.h> #include <conio.h> #include <string.h> #include <iostream.h> class Sentence { public: char *str; Sentence(char *p); char* sort();
C++ Рекурсия. Составьте программу, которая для заданных значений n и m, определит номер оставшегося в кругу человека Пусть n человек встали в круг и получили номера от 1 до n по часовой стрелке. Затем, начиная с первого, по часовой стрелке отсчитывается m человек. Этот m–й человек выходит из круга, после чего,... http://www.cyberforum.ru/cpp-beginners/thread897740.html
Turbo C++ C++
где можно скачать турбо си?
Как вызвать в main данные функции? C++
Вот весь код,приму любые замечания,так как я еще учусь) Ткните меня в мои же ошибки) using namespace std; template <class T>//Создаем дерево class Tree { struct Node { T item; Node...
C++ Конвертер линейных уравнений http://www.cyberforum.ru/cpp-beginners/thread897722.html
Мне нужно сконвертировать линейное уравнение так, что бы получилось уравнения для процессора Привер: (2+3)*5 -> 2 3 + 5 * Вопрос только в том, как называется данная конвертация?
C++ Массив: номер минимального и максимального по модулю элемента массива В одномерном массиве состоящем из n вещественных элементов вычислить:1) номер минимального и максимального по модулю ялемента массива 2) сумму элементов массива, расположенных после первого... подробнее

Показать сообщение отдельно
Гром
210 / 129 / 11
Регистрация: 20.03.2009
Сообщений: 1,103
Записей в блоге: 16
Завершенные тесты: 1
10.06.2013, 20:26
Рандом ни при чем. Просто у вас проверяется, нет ли совпадения с одним из предыдущих элементов, если нет - записывается сгенерированное значение, а если есть - повторной генерации не происходит, вы переходите к следующему элементу. То есть в этом случае вы просто не присвоили элементу массива никакого значения, и там оказался мусор.
Оберните код проверки и генерации в цикл while:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for (int i = 0; i < 20; ++i)
 {
 bool Ok = false;
 while (! flag)
  {
  Ok = true;
  b = rand() % 50;
  for (j = 0; j < i; ++j)
   if (a[j] == b)
    Ok = false;
  }
 a[i] = b;
 }
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru