Создать функцию, которая будет иметь два целочисленных параметра a и b, и в качестве своего значения возвращать случайное целое число из отрезка [a;b]. C помощью данной функции заполнить массив из 20 целых чисел и вывести его на экран. Помогите мне, пожалуйста. Надо чтобы эта функция генерировала разные числа.
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int cluchaynoechislo(int a, int b) // функция принимает 2 целочисленных параметра и возвращает в качестве своего значения целое число из отрезка [a;b].
{
srand((unsigned)time(NULL));
unsigned const int n = 20;
int A[n];
int cluchchislo;
for(int i = 0; i < n; i++)
{
cluchchislo = a + rand() % (b - a);
A[i] = cluchchislo;
}
return cluchchislo;
}
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(0,""); // русификация
int a, b;
cout << "Введите первое число: ";
cin >> a;
cout << "Введите второе число: ";
cin >> b;
unsigned const int n = 20;
int A[n];
cout << "Элементы массива A: ";
for (int i = 0; i < n; i++)
{
A[i] = cluchaynoechislo(a,b);
cout << A[i] << " ";
}
cout << endl;
system("pause");
return 0;
}
Вынесите инициализацию гпсч в main:
srand((unsigned)time(NULL));
не нужно вызывать инициализацию при каждом вызове функции.
Более того. Зачем вы каждый раз внутри функции заполняете массив случайных чисел. Если вам только одно надо? Можно переписать функцию так:
int random_int(int a, int b) {
return a + rand() % (b - a + 1);
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости