• Предмет: Информатика
  • Автор: alinakotik213
  • Вопрос задан 1 год назад

Где ошибка в коде С++ ? Помогите, пжл.
Задание: Динамически создать массив размера 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;
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;
cout<<"number_A number_B: ";
cin>>na>>nb; cout<<"k="<< k(m,n,na,nb);
delete []m; cout<<"\nPress Enter for exit\n";
cin.get();
cin.get();}
Считает разность между А и Б, а не количество элементов


MrMaks1096: не возможно что бы считало разность
MrMaks1096: и зачем столько include если там используется только библиотека ввода вывода?
Khaker1999: Зачем столько #include - не знаю. Нужно только (для ввода/вывода) и (для вызлва ф-ии time(...)). А так, я код скопировал - все считается правильно.
Khaker1999: Зачем столько #include - не знаю. Нужно только (для ввода/вывода) и (для вызлва ф-ии time(...)). А так, я код скопировал - все считается правильно.
Khaker1999: Нужно только: iostream, ctime.
MrMaks1096: ctime не нужен там значение null, смысл его подключать если и так считает
MrMaks1096: а за такое форматирование кода, нас из аудитории выгоняют)
Khaker1999: Чтобы функцию 'time()' вызвать нужен 'ctime'.
Khaker1999: Тут чисто код почистить - переменные нормально назвать.
Khaker1999: Ладно, ща напишу..

Ответы

Ответ дал: Khaker1999
0
#include <iostream>
#include <ctime>

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;

  return res;
}

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

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

  int
    number_A,
    number_B;

  cout << "Enter the 'number_A' and the 'number_B': ";
  cin >> number_A >> number_B;
  cout << "Result = 
          << SearchArray(mainArray, arraySize, number_A, number_B)
          << endl;

  delete[] mainArray;
  cout << "\nPress 'Enter' for exit\n";
  cin.get();

  return 0;
}
Вас заинтересует