Тема: C++ Масив
Масив розмір 50 , діапазон значень (-100 ; 100) , потрібно:
 Замінити всі елементи з від'ємним значенням на значення мінімального (не дорівнює 0) позитивного елемента
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → C++ Масив
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Масив розмір 50 , діапазон значень (-100 ; 100) , потрібно:
 Замінити всі елементи з від'ємним значенням на значення мінімального (не дорівнює 0) позитивного елемента
/****************************************************************************
 Масив розмір 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;
    }
}Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися