Генерация массива случайных чисел - 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(), чтобы инициализировать генератор случайных чисел с помощью текущего времени. Вот список действий, которые выполняет код:
- Инициализация массива last_generation[60] нулями.
- Ввод значения k в функцию main().
- Вызов функции generation(k) для каждого значения k от 0 до 60.
- Внутри функции generation(k), инициализация q=1 перед началом цикла.
- Цикл while() выполняется до тех пор, пока q не станет равным нулю.
- Внутри цикла while(), инициализация q=0.
- Случайное число от 1 до 60 сохраняется в last_generation[k].
- Если k не равно нулю, то происходит проверка на совпадение чисел в массиве last_generation. Если число в last_generation[k] совпадает с числом в last_generation[i], то q становится равным 1.
- После окончания цикла while(), выводится значение k.
- После окончания цикла for(k=0;k<60;k++), выводится каждое значение last_generation[k] с пробелом после него.
- Код не выполняет сортировку массива last_generation.