Где ошибка в коде С++ ? Помогите, пжл. Задание: Динамически создать массив размера n (n...

0 голосов
32 просмотров

Где ошибка в коде С++ ? Помогите, пжл.
Задание: Динамически создать массив размера n (n вводится с клавиатуры) и заполнить его случайными числами из диапазона [a, b] (a, b вводятся с клавиатуры). Заполнение массива реализовать с помощью функции.
Вычислить количество элементов массива, лежащих в диапазоне от number_А до number_В (number_А и number_В вводятся с клавиатуры), с помощью функции.
#include
#pragma hdrstop
#include
#include
#include
using namespace std;
void z(int *m, int n, int a, int b)
{
srand(time(NULL));
for(int i=0;i< n;i++)m[i]=a+rand()%(b-a+1);}
int k(int *m, int n, int a, int b)
{
int s=0; for(int i=0;i< n;i++)s+=m[i]>=a&&m[i]<=b;<br> return s;
}
int main()
{
int n,a,b,na,nb; cout<<" Vvedite razmer massiva n: "; cin>>n;
int *m=new int[n];
cout<<"Vvedite diapazon ot a do b: "; cin>>a>>b;
z(m,n,a,b);
for(int i=0;i< n;i++)cout< cout<< endl;<br> cout<<"number_A number_B: ";<br> cin>>na>>nb; cout<<"k="<< k(m,n,na,nb);<br> delete []m; cout<<"\nPress Enter for exit\n";<br> cin.get();
cin.get();}
Считает разность между А и Б, а не количество элементов


Информатика (12 баллов) | 32 просмотров
0

не возможно что бы считало разность

0

и зачем столько include если там используется только библиотека ввода вывода?

0

Зачем столько #include - не знаю. Нужно только (для ввода/вывода) и (для вызлва ф-ии time(...)). А так, я код скопировал - все считается правильно.

0

Зачем столько #include - не знаю. Нужно только (для ввода/вывода) и (для вызлва ф-ии time(...)). А так, я код скопировал - все считается правильно.

0

Нужно только: iostream, ctime.

0

ctime не нужен там значение null, смысл его подключать если и так считает

0

а за такое форматирование кода, нас из аудитории выгоняют)

0

Чтобы функцию 'time()' вызвать нужен 'ctime'.

0

Тут чисто код почистить - переменные нормально назвать.

0

Ладно, ща напишу..

Дан 1 ответ
0 голосов

#include
#include

using namespace std;

void FillArray( int *mainArray, int arraySize,
                       int leftRandBorder, int rightRandBorder )
{
  srand(time(NULL));
  
  for (int i = 0; i < arraySize; i++)
    mainArray[i] = leftRandBorder + rand() % (rightRandBorder - leftRandBorder + 1);
}

int SearchArray( int *mainArray, int arraySize, int number_A, int number_B )
{
  int res = 0;

  for (int i = 0; i < arraySize; i++)
    res += mainArray[i] >= number_A && mainArray[i] <= number_B;<br>
  return res;
}

int main()
{
  int
    *mainArray,
    arraySize;
  
  cout << "Enter the array size: ";<br>  cin >> arraySize;
  mainArray = new int[arraySize];

  int
    leftRandBorder,
    rightRandBorder;
 
  cout << "Enter the rage from 'a' to 'b': ";<br>  cin >> leftRandBorder >> rightRandBorder;
  FillArray(mainArray, arraySize, leftRandBorder, rightRandBorder);

  int
    number_A,
    number_B;

  cout << "Enter the 'number_A' and the 'number_B': ";<br>  cin >> number_A >> number_B;
  cout << "Result = <br>          << SearchArray(mainArray, arraySize, number_A, number_B)<br>          << endl;<br>
  delete[] mainArray;
  cout << "\nPress 'Enter' for exit\n";<br>  cin.get();

  return 0;
}

(1.3k баллов)