Подсчитать в двух разных динамических массивах количество положительных элементов - 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;
}

Объяснение кода листинга программы

В этом коде реализована задача на подсчет количества положительных элементов в двух динамических массивах.

  1. В функции Random генерируется случайное число в заданном диапазоне.
  2. В функции GetRandArray создается динамический массив заданного размера, заполненный случайными числами от min до max.
  3. В функции Print выводится на экран содержимое массива.
  4. В функции GetCountPositive подсчитывается количество положительных чисел в массиве.
  5. В функции main создаются два массива заданного размера, заполненные случайными числами.
  6. Если количество положительных чисел в первом массиве меньше, чем во втором, то на экран выводится второй массив, иначе - первый.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы