Генерация массива случайных чисел - C (СИ)

Узнай цену своей работы

Формулировка задачи:

помогите пожалуйста ! нужно написать функцию которая будет генирировать числа от 1 до 60 и записовать их в массив при условии того чтоб числа не повторялись !!! она не совсем правильно работает !!!
//#include<iostream>
#include<stdlib.h> // в этом файле содержатся функции rand() и srand()
#include<time.h>
#include<windows.h>
#include<conio.h>
#include<time.h>
#include<stdio.h>
//#include<rand>
//#include <stdfx.h>
#include<iostream>
using namespace std;
int last_generation[60];
int q;
 
void generation(int k)
{
 
    //srand();
    //
 
    //srand(time (time t)); 
q=0;
    for(int zzz=0;q!=0;zzz++)
{    
    srand(time(NULL));
    last_generation[k]=rand()%60+1;
    if(k!=1)
    {
    for(int i=0;i<k;i++)
{    
    if(last_generation[k]==last_generation[i])
{
    q=1;
}
}
    }
}////////while();//////////////////////////////////////конец цикла дувайл
 
//cout<<"k="<<k;

}
 
void main()
{
    int k;
for(k=0;k<60;k++)
{
generation(k);
cout<<last_generation[k]<<"  ";
}
//int q;
//for(int i=0;i<60;i++)
//for(int j=0;j<60;j++)
//{
//if(last_generation[i]>last_generation[i+1])
//{q=last_generation[i];
//last_generation[i]=last_generation[i+1];
//last_generation[i+1]=q;
//}}
 
cout<<endl<<endl<<"Fvfbgbtrbtnththb"<<endl;
for(int i=0;i<60;i++)
cout<<last_generation[i]<<"   ";
}

Решение задачи: «Генерация массива случайных чисел»

textual
Листинг программы
//#include<iostream>
#include<stdlib.h> // в этом файле содержатся функции rand() и srand()
#include<time.h>
#include<windows.h>
#include<conio.h>
//#include<time.h>
#include<stdio.h>
//#include<rand>
//#include <stdfx.h>
#include<iostream>
using namespace std;
int last_generation[60];
int q;
 
void generation(int k)
{
 
    //srand();
    //
 
    //srand(time (time t)); 
q=1;
    for(int zzz=0;q!=0;zzz++)
{    
    srand(time(NULL));
    while(q)
    {
        q=0;
    last_generation[k]=rand()%60+1;
    if(k!=0)
    for(int i=0;i<k;i++)
    if(last_generation[k]==last_generation[i])
        q=1;
    }
 
 
 
}////////while();//////////////////////////////////////конец цикла дувайл
 
//cout<<"k="<<k;
 
 
}
 
void main()
{
    int k;
for(k=0;k<60;k++)
{
generation(k);
cout<<last_generation[k]<<"  ";
}
//int q;
//for(int i=0;i<60;i++)
//for(int j=0;j<60;j++)
//{
//if(last_generation[i]>last_generation[i+1])
//{q=last_generation[i];
//last_generation[i]=last_generation[i+1];
//last_generation[i+1]=q;
//}}
 
cout<<endl<<endl<<"Fvfbgbtrbtnththb"<<endl;
for(int i=0;i<60;i++)
cout<<last_generation[i]<<"   ";
}

Объяснение кода листинга программы

Код генерирует массив случайных чисел, используя функцию rand() из библиотеки stdlib.h. Он также использует функцию srand(), чтобы инициализировать генератор случайных чисел с помощью текущего времени. Вот список действий, которые выполняет код:

  1. Инициализация массива last_generation[60] нулями.
  2. Ввод значения k в функцию main().
  3. Вызов функции generation(k) для каждого значения k от 0 до 60.
  4. Внутри функции generation(k), инициализация q=1 перед началом цикла.
  5. Цикл while() выполняется до тех пор, пока q не станет равным нулю.
  6. Внутри цикла while(), инициализация q=0.
  7. Случайное число от 1 до 60 сохраняется в last_generation[k].
  8. Если k не равно нулю, то происходит проверка на совпадение чисел в массиве last_generation. Если число в last_generation[k] совпадает с числом в last_generation[i], то q становится равным 1.
  9. После окончания цикла while(), выводится значение k.
  10. После окончания цикла for(k=0;k<60;k++), выводится каждое значение last_generation[k] с пробелом после него.
  11. Код не выполняет сортировку массива last_generation.

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


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

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

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