Вывести последовательность из 6 элементов, чтобы значения выбирались случайно из массива , но при этом не повторялись при помощи цикла for
у меня есть массив от 1 до 6, но я не понимаю как это сделать.
мой вариант решения заключался в том, чтобы каждый раз удалять выбранный случайный элемент, но при этом сбивается логика обращения через индексы
в общем, кто сможет обьясните(
Другие языки программирования и технологии
Вывести последовательность из 6 элементов, чтобы значения выбирались случайно из массива , но при этом не повторялись с#
А никто не заставляет тебя сохранять исходный массив в исходном виде же.
int[] a = new int[] { 1, 2, 3, 4, 5, 6 };
Random r = new Random(DateTime.Now.Millisecond);
for (int i = a.Length; i > 0; i--)
{
int idx = r.Next(i);
Console.WriteLine(a[idx]);
a[idx] = a[i - 1];
}
Не знаю в чём тут трудность:
Надо просто все эти шесть элементов последовательности заполнять постепенно, проверяя при этом каждого нового кандидата на включение в последовательность на предмет того, не состоит ли он уже в ней.
using System;
namespace New_Project
{ public static class Program
{ public static void Main()
{ int j, k, l, m = 0, n; bool yes;
Random rnd = new Random();
Console.Write("n = ");
n = int.Parse(Console.ReadLine());
int [] A = new int [n];
Console.WriteLine("Рандомный массив:");
for (l = 0; l < n; l++)
{ A[l] = rnd.Next() % 199 - 99;
Console.Write("{0, 4:d}", A[l]);
m++; if (m == 15) { m = 0;
Console.WriteLine(); } }
if (m > 0) { m = 0; Console.WriteLine(); }
Console.WriteLine("Шесть различных случайно выбранных элементов из данного массива:");
int [] B = new int [6];
for (l = 0; l < 6; l++)
{ begin: k = rnd.Next() % n;
yes = true; for (j = 0; j < m; j++)
if (B[j] == k) { yes = false; break; }
if (yes) { B[l] = k; m++;
Console.Write(B[l] + " "); }
else goto begin; } } } }

Николай Бескоровайный
А как это проверять, если циферки могут повторяться в исходном массиве? Мы же выводим 6 разных элементов, а не 6 разных значений.
Похожие вопросы
- Help me!Удалить элементы кратные 2. Добавить после каждого нечетного элемента массива элемент со значением 0. си++
- 16. Дан массив из 20 элементов. Найти пять «соседних» элементов, сумма значений которых максимальна. ??
- Дан массив из 20 элементов. Найти три «соседних» элементов, сумма значений которых максимальна. как это на СИ сделать?
- Как в цикле вывести последовательность чисел 7 и 0. Например 70, 707 , 700, 770.Цикл от 1 до 1000Язык не важен...
- 1.Заполнить массив случайными числами. Вывести элементы массива на экран. Заменить все его минимальные элементы нулями.
- Помогите с массивами! Найти и вывести на экран сумму нечётных элементов массива и количество отрицательных.
- Напишите программу, которая находит в массиве количество элементов, равных заданному значению X .
- Дан массив. Выведите те его элементы, которые встречаются в массиве только один раз. В чем ошибка?
- Удаление повторяющихся элементов из массива С++
- Microsoft Visual C++ 6.0 В одномерном массиве, состоящем из n вещественных элементов, вычислить...