Сформировать одномерный массив. В заданном массиве замените с k1 по k2 на противоположные по знаку - C (СИ)

Формулировка задачи:

Сформировать одномерный массив размерностью n>100 с помощью генератора случайных чисел в диапазоне [-99;99].В заданном массиве замените с k1 по k2 на противоположные по знаку.На экран вывести исходный массив и результирующий.

Код к задаче: «Сформировать одномерный массив. В заданном массиве замените с k1 по k2 на противоположные по знаку - C (СИ)»

textual
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int gen_rand_range(int start, int stop) {
    return (start + (rand() % (stop - start)));
}
 
void init_array(int size, int start, int stop, int a[size]) {
    for(unsigned int i = 0; i < size; ++i) {
        a[i] = gen_rand_range(start, stop);
    }
}
 
int swap_sign(int num) {
    return -num;
}
 
void swap_num_range(int size, int start, int stop, int a[size]) {
    for(unsigned int i = start; i < stop; ++i) {
        a[i] = swap_sign(a[i]);
    }
}
 
void print_array(int size, int a[size]) {
    int line = 10;
    for(unsigned int i = 0; i < size; ++i) {
        if(!(i % line)) {
            fprintf(stdout, "\n");
        }
        fprintf(stdout, "%4d   ", a[i]);
    }
    fprintf(stdout, "\n");
}
 
int main(int argc, char *argv[]) {
    srand(time(NULL));
    
    int SIZE = 150;
    int array[SIZE];
    
    init_array(SIZE, -99, 100, array);
    fprintf(stdout, "Исходный массив:\n");
    print_array(SIZE, array);
    
    swap_num_range(SIZE, 10, 30, array);
    fprintf(stdout, "Измененный массив:\n");
    print_array(SIZE, array);
    
    return EXIT_SUCCESS;
}

10   голосов, оценка 4.200 из 5


СОХРАНИТЬ ССЫЛКУ