Рандомные числа без повтора - C (СИ)
Формулировка задачи:
Как сделать чтобы рандомные числа выводились без повторения ?
#include <stdio.h> #include <conio.h> #include <stdlib.h> void main(){ int n,i,k=0; printf("Vvedite kol. rand. 4isel "); scanf("%d", &n); for(i=0; i<n; i++){ k = i + rand() % n; printf("\n%d", k); } getch(); }
Решение задачи: «Рандомные числа без повтора»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> int main() { int n,i,k,z; srand(time(NULL)); printf("Vvedite kol. rand. 4isel \n"); scanf("%d", &n); k=rand() % n + 1; printf("%d ", k); for(i=1; i<n; i++) { z=k+ (rand() % n +1 ); printf("%d ", z); k=z; } getche(); return 0; }
Объяснение кода листинга программы
Код генерирует случайные числа от 1 до n, где n - количество чисел, которые нужно сгенерировать. Числа генерируются без повторений, т.е. каждое число уникально.
- #include
Включает в программу библиотеку для работы с функциями ввода/вывода - #include
Включает в программу библиотеку для работы с функцией getche(), которая используется для приостановки выполнения программы до тех пор, пока пользователь не нажмет клавишу - #include
Включает в программу библиотеку для работы со случайной генерацией чисел - #include
Включает в программу библиотеку для работы с функцией time(), которая используется для инициализации генератора случайных чисел - int main() Функция main() является точкой входа в программу
- srand(time(NULL)); Инициализация генератора случайных чисел текущим временем
- printf(
Vvedite kol. rand. 4isel \n
); Вывод приглашения для ввода количества случайных чисел - scanf(
%d
, &n); Считывание количества случайных чисел с помощью функции scanf() - k=rand() % n + 1; Генерация первого случайного числа от 1 до n
- printf(
%d
, k); Вывод первого случайного числа - for(i=1; i<n; i++) Цикл для генерации оставшихся случайных чисел
- z=k+ (rand() % n +1 ); Генерация следующего случайного числа
- printf(
%d
, z); Вывод следующего случайного числа - k=z; Присваивание следующего случайного числа переменной k
- getche(); Ожидание нажатия клавиши
- return 0; Возврат 0, что означает успешное выполнение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д