Сформировать одномерный массив. В заданном массиве замените с k1 по k2 на противоположные по знаку - C (СИ)
Формулировка задачи:
Сформировать одномерный массив размерностью n>100 с помощью генератора случайных чисел в диапазоне [-99;99].В заданном массиве замените с k1 по k2 на противоположные по знаку.На экран вывести исходный массив и результирующий.
Решение задачи: «Сформировать одномерный массив. В заданном массиве замените с k1 по k2 на противоположные по знаку»
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;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с C
- Определяем функцию генерации случайного числа в заданном диапазоне
- Определяем функцию инициализации массива случайными числами
- Определяем функцию замены знака числа на противоположный
- Определяем функцию замены знаков чисел в заданном диапазоне массива
- Определяем функцию печати массива на экран
- В функции main инициализируем размер массива, создаем массив и инициализируем его случайными числами
- Выводим исходный массив на экран
- Меняем знак чисел в заданном диапазоне массива
- Выводим измененный массив на экран
- Завершаем программу успехом