Генерация массива случайных чисел - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д