Массив случайных неповторяющихся чисел - C (СИ)
Формулировка задачи:
У меня есть например 50 кнопок как сделать так чтоб каждая кнопка имела свой номер. но он должен каждый раз меняться и не должен повторяться!
А числа которые нужно отгадать нужно будет вписать в специальную ячейку. 10 попыток и 10 ячеек
Решение задачи: «Массив случайных неповторяющихся чисел»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #define SIZE 100 int main() { int arr[SIZE]; int i, j, t; /* создаем массив последовательных чисел от 1 до SIZE */ for(i = 0; i < SIZE; i++){ arr[i] = i+1; } /* перемешиваем его */ srand ((unsigned int) time(NULL) ); for(i = SIZE-1; i > 0; i--){ j = rand() % i; t = arr[j]; arr[j] = arr[i]; arr[i] = t; } /* на выходе имеем массив перемешанных неповторяющихся чисел от 1 до SIZE */ for(i = 0; i < SIZE; i++){ printf("%d\n", arr[i]); } return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со случайными числами и временем
- Объявление массива с размером 100 элементов
- Создание трех переменных для работы с циклами
- Заполнение массива последовательными числами от 1 до 100
- Перемешивание массива с помощью алгоритма
Fisher-Yates
- Вывод на экран полученного массива случайных неповторяющихся чисел от 1 до 100
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д