1

Тема: C++ Масив

Масив розмір 50 , діапазон значень (-100 ; 100) , потрібно:
Замінити всі елементи з від'ємним значенням на значення мінімального (не дорівнює 0) позитивного елемента

2

Re: C++ Масив

Усе погано

3

Re: C++ Масив

/****************************************************************************
 Масив розмір 50 , діапазон значень (-100 ; 100) , потрібно:
Замінити всі елементи з від'ємним значенням на значення 
мінімального (не дорівнює 0) позитивного елемента                                                                                             *
 ****************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define MAX_LEN        100
#define MIN_LEN        -100
#define ARR_SIZE    50

void BuildArray(int *);
void PrintArray(int *);
int GetMinPositValue(int *);
void ReplaceValue(int *, int);

int main(int argc, char *argv[])
{
     int arr[ARR_SIZE];
    srand(time(0));
    BuildArray(arr);
    PrintArray(arr);
    int min_value = GetMinPositValue(arr);
    ReplaceValue(arr, min_value);
    PrintArray(arr);   
    printf("\nHello, world!\n");
    return 0;
}

void PrintArray(int * array)
{
    for (int i = 0; i < ARR_SIZE; i++)
        printf("%4d = %4d ", i, array[i]);
}

void BuildArray(int * array)
{
    for (int i = 0; i < ARR_SIZE; i++)
    {
        array[i] = rand() % (MAX_LEN - MIN_LEN) + MIN_LEN;
    }
}

int GetMinPositValue(int * array)
{
    int pos = 0;
    int value = 0;
    for (int i = 0; i < ARR_SIZE; i++)
    {
        if (array[i] > 0)
        {
            value = array[i];
            pos = i;
            break;
        }
    }
    printf("\nFirst positive value pos=%4d val= %4d\n", pos, array[pos]);

    for (int i = pos; i < ARR_SIZE; i++)
    {
        if (array[i] < 0) continue;
        // 
        if (array[i] < value)
        {
            value = array[i];            
            printf("pos=%4d val= %4d\n", i, array[i]);
        }
    }
    printf("Min positive value val= %4d\n", value);
    return value;
}

void ReplaceValue(int * array, int value)
{
    for (int i = 0; i < ARR_SIZE; i++)
    {
        if (array[i] < 0)
            array[i] = value;
    }
}