Рандомные числа без повтора - 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 - количество чисел, которые нужно сгенерировать. Числа генерируются без повторений, т.е. каждое число уникально.

  1. #include Включает в программу библиотеку для работы с функциями ввода/вывода
  2. #include Включает в программу библиотеку для работы с функцией getche(), которая используется для приостановки выполнения программы до тех пор, пока пользователь не нажмет клавишу
  3. #include Включает в программу библиотеку для работы со случайной генерацией чисел
  4. #include Включает в программу библиотеку для работы с функцией time(), которая используется для инициализации генератора случайных чисел
  5. int main() Функция main() является точкой входа в программу
  6. srand(time(NULL)); Инициализация генератора случайных чисел текущим временем
  7. printf(Vvedite kol. rand. 4isel \n); Вывод приглашения для ввода количества случайных чисел
  8. scanf(%d, &n); Считывание количества случайных чисел с помощью функции scanf()
  9. k=rand() % n + 1; Генерация первого случайного числа от 1 до n
  10. printf(%d, k); Вывод первого случайного числа
  11. for(i=1; i<n; i++) Цикл для генерации оставшихся случайных чисел
  12. z=k+ (rand() % n +1 ); Генерация следующего случайного числа
  13. printf(%d, z); Вывод следующего случайного числа
  14. k=z; Присваивание следующего случайного числа переменной k
  15. getche(); Ожидание нажатия клавиши
  16. return 0; Возврат 0, что означает успешное выполнение программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы