Задача С++ , массив
Заполните целочисленный массив 100 случайными числами в диапазоне -99...99, выведите его в таблицу на экран
в виде 10 чисел в строке, вычислить и вывести на экран следующую информацию (затем написать и вызвать
функции):
A: среднее арифметическое значение массива:
float getAverage(int array[], int size)
пример: 12 -76 0 90 -44 15 -2 90 0 22 → 10.7
B: количество отрицательных элементов:
int negCount(int array[], int size)
пример: 12 -76 0 90 -44 15 -2 90 0 22 → 3
C: индекс первой нулевой позиции (или -1, если в массиве нет нуля):
int zeroIndex(int array[], int size)
пример: 12 -76 0 90 -44 15 -2 90 0 22 → 2
D: минимальное и максимальное значения элементов:
int getMin(int array[], int size)
int getMax(int array[], int size)
пример: 12 -76 0 90 -44 15 -2 90 0 22 → -76...90
E: сумма элементов в массиве между первым минимумом и последним максимумом:
int getRangeSum(int array[], int size)
пример: 12 -76 0 90 -44 15 -2 90 0 22 → 59
Ответы
Объяснение:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
float getAverage(int array[], int size);
int negCount(int array[], int size);
int zeroIndex(int array[], int size);
int getMin(int array[], int size);
int getMax(int array[], int size);
int getRangeSum(int array[], int size);
int main()
{
const int ARRAY_SIZE = 100;
int arr[ARRAY_SIZE];
srand(time(NULL));
for (int i = 0; i < ARRAY_SIZE; i++)
{
arr[i] = rand() % 199 - 99;
}
// вывод массива в таблицу на экран
for (int i = 0; i < ARRAY_SIZE; i++)
{
cout << arr[i] << "\t";
if ((i + 1) % 10 == 0)
cout << endl;
}
cout << "A: Среднее арифметическое значение массива: " << getAverage(arr, ARRAY_SIZE) << endl;
cout << "B: Количество отрицательных элементов: " << negCount(arr, ARRAY_SIZE) << endl;
cout << "C: Индекс первой нулевой позиции: " << zeroIndex(arr, ARRAY_SIZE) << endl;
int min = getMin(arr, ARRAY_SIZE);
int max = getMax(arr, ARRAY_SIZE);
cout << "D: Минимальное значение элементов: " << min << endl;
cout << " Максимальное значение элементов: " << max << endl;
cout << "E: Сумма элементов в массиве между первым минимумом и последним максимумом: " << getRangeSum(arr, ARRAY_SIZE) << endl;
return 0;
}
float getAverage(int array[], int size)
{
float sum = 0;
for (int i = 0; i < size; i++)
{
sum += array[i];
}
return sum / size;
}
int negCount(int array[], int size)
{
int count = 0;
for (int i = 0; i < size; i++)
{
if (array[i] < 0)
count++;
}
return count;
}
int zeroIndex(int array[], int size)
{
for (int i = 0; i < size; i++)
{
if (array[i] == 0)
return i;
}
return -1;
}
int getMin(int array[], int size)
{
int min = array[0];
for (int i = 1; i < size; i++)
{
if (array[i] < min)
min = array[i];
}
return min;
}
int getMax(int array[], int size)
{
int max = array[0];
for (int i = 1; i < size; i++)
{
if (array[i] > max)
max = array[i];
}
return max;
}
int getRangeSum(int array[], int size)
{
int sum = 0;
int minIndex = 0, maxIndex = 0;
for (int i = 1; i < size; i++)
{
if (array[i] < array[minIndex])
minIndex = i;
if (array[i] > array[maxIndex])
maxIndex = i;
}