Подсчитать в двух разных динамических массивах количество положительных элементов - C (СИ)
Формулировка задачи:
Подсчитать в двух разных динамических массивах количество положительных элементов с помощью пользовательской функции, первым на печать вывести содержащий наибольшее количеаство их.
Решение задачи: «Подсчитать в двух разных динамических массивах количество положительных элементов»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//-----------------------------------------------------------------------------
int Random(int min, int max)
{
return (rand() % (max - min + 1) + min);
}
//-----------------------------------------------------------------------------
int* GetRandArray(unsigned size, int min, int max)
{
int* array = malloc(sizeof(int) * size);
unsigned i;
for (i = 0; i < size; ++i)
{
array[i] = Random(min, max);
}
return array;
}
//-----------------------------------------------------------------------------
void Print(int* array, unsigned size)
{
int i;
for (i = 0; i < size; ++i)
{
printf("%d ", array[i]);
}
printf("\n");
}
//-----------------------------------------------------------------------------
unsigned GetCountPositive(int* array, unsigned size)
{
unsigned count = 0;
unsigned i;
for (i = 0; i < size; ++i)
{
if (array[i] > 0)
{
count++;
}
}
return count;
}
//-----------------------------------------------------------------------------
int main()
{
srand(time(NULL));
unsigned nA = Random(1, 20);
unsigned nB = Random(1, 20);
int* a = GetRandArray(nA, -10, 10);
int* b = GetRandArray(nB, -10, 10);
if (GetCountPositive(a, nA) < GetCountPositive(b, nB))
{
printf("b = "); Print(b, nB);
printf("a = "); Print(a, nA);
}
else
{
printf("a = "); Print(a, nA);
printf("b = "); Print(b, nB);
}
return 0;
}
Объяснение кода листинга программы
В этом коде реализована задача на подсчет количества положительных элементов в двух динамических массивах.
- В функции
Randomгенерируется случайное число в заданном диапазоне. - В функции
GetRandArrayсоздается динамический массив заданного размера, заполненный случайными числами отminдоmax. - В функции
Printвыводится на экран содержимое массива. - В функции
GetCountPositiveподсчитывается количество положительных чисел в массиве. - В функции
mainсоздаются два массива заданного размера, заполненные случайными числами. - Если количество положительных чисел в первом массиве меньше, чем во втором, то на экран выводится второй массив, иначе - первый.