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

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


textual

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

#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



Похожие ответы
  1. Сформировать массив из элементов исходных массивов, больших второго элемента первого массива и положительных элементов второго массива. Требуется сформировать новый массив по заданию. В программе реализовать: 1) генерацию случайным образом элементов исходных массивов; 2) выполнение действия в соответствии с условием задачи; 3) порядок вывода: • исходные массивы, • сформированный массив, если он был сформирован. В противном случае – соответствующее сообщение. Помогите, а то не могу сделать

  1. Условие задачи: Составьте программу формирования из массива A(N) двух массивов, в которых первый массив заполнен элементами, предшествующими максимальному, а второй - остальными элементами. И отсортировать первый - по убыванию, второй - по возрастанию.На задачу наткнулся случайно, хотелось бы понять как ее решить, т.к. изучать язык Си начал совсем недавно. Заранее спасибо.

  1. Помогите пожалуйста с решением. Сформировать числовой массив N, элементы которого указывают длину каждого слова в заданном предложении. Напечатать исходный текст и массив N.

  1. Дана матрица размерности 2 на 3. Положительные элементы матрицы переписать подряд в одномерный массив.

  1. Количество элементов массива ввести с клавиатуры, после чего выделить необходимый объем динамической памяти для размещения массива. Перед выходом из программы освободить занятую динамическую память. Сформировать массив из первых 20 чисел Фибоначчи. Учесть, что первые два числа Фибоначчи равны 1, а каждое следующее является суммой двух предыдущих. Сформированный массив вывести на экран.

  1. В общем, вопрос такой. Пусть нам нужно задать массив, используя динамическое выделение памяти. Как это сделать? Расскажу свой ход мыслей, а вы скажите прав я или нет. В начале мы задаём указатель на тип данных, после вводим количество необходимых элементов под массив. Далее резервируем память, используя функцию malloc. (Количество элементов*размер типа данных) Таким образом получаем, сколько будет весить наш массив. Потом путём получения адресов i-ого элемента заполняем массив. Фрагмент кода:C1 2 3 4 5 6 7 8 9 10     int *array, i,j, n;     int  Min, Max=0, sum=0, proizv=1,temp,imin;     printf("Введите необходимое количество элементов массива:");     scanf("%d",&n);     array=(int*)malloc(n*sizeof(int));// указатель на целый тип, в котором применяется функция malloc, подсчитывающая необходимое количество памяти в байтах под размерность массива     for(i=0;i

  1. Доброго времени суток. Дано задание :"Из положительных элементов матриц А и С сформировать векторы Х и Т, соответственно." Задание нужно выполнить с помощью подпрограмм в чистом си. Не могу понять каким образом реализуется формирование векторов в си , подскажите пожалуйста. Код ввода и вывода матриц:C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 #include #include "stdio.h" #include "conio.h" #include "math.h" #include "iostream"   int **zad3_1(int n, int m, int **mas)// 3.1 {     for (int i = 0; i < n; i++)     {         for (int j = 0; j < m; j++)         {             printf("Введите элемент [%d,%d]", i + 1, j + 1);             scanf("%d", &mas[i][j]);         }     }     return mas; }     void zad3_2(int n, int m, int **mas) {     for (int i = 0; i < n; i++)     {         printf("|");         for (int j = 0; j < m; j++)         {             printf("%3d ", mas[i][j]);         }         puts("|");     } } int main() {     setlocale(LC_ALL, "Russian");     int n_a, n_c,m_a,m_c;     puts("Введите n для матрицы A");     scanf("%d", &n_a);     puts("Введите m для матрицы A");     scanf("%d", &m_a);     puts("Введите n для матрицы C");     scanf("%d", &n_c);     puts("Введите m для матрицы C");     scanf("%d", &m_c);         int **a = new int*[n_a];     int **c = new int*[n_c];         for (int i = 0; i < n_a; i++)     {         a[i] = new int[n_a];     }     for (int i = 0; i < n_c; i++)     {         c[i] = new int[n_c];     }     puts("Введите матрицу A:");     a = zad3_1(n_a,m_a,a);     puts("Введите матрицу C:");     c = zad3_1(n_c,m_c,c);     puts("\nМатрица A:\n");     zad3_2(n_a,m_a,a);     puts("\nМатрица C:\n");     zad3_2(n_c,m_c,c);           getch();     fflush(stdin);     system("cls"); }

  1. Задание: Даны два динамических одномерных массива X и Y размера N. Сформировать динамическую матрицу Z размера N*3, в которой первый столбец образуют элементы массива X, второй столбец-элементы массива Y, а третий столбец заполнен средними арифметическими значениями соответствующих пар элементов из X и Y вот что у меня получилось. компилятор выводит только первые 19 строк, а потом закрывается наведите пожалуйста на мысль в чем может быть причина C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 #include #include #include   int main() {     int n;     float **Z, *X, *Y;       printf("Enter n=");     scanf_s("%d", &n,1);     X = (float*)malloc(n * sizeof(float));     if (!X)         return 1;     Y = (float*)malloc(n * sizeof(float));     if (!Y)         return 1;     for (int i = 0; i < n; i++)     {         *(X + i) = rand() % 200;         *(Y + i) = rand() % 200;     }     printf("\n");       Z = (float**)malloc(n*sizeof(float*));     for (int i = 0; i<3; i++)         Z[i] = (float*)malloc(3 * sizeof(float));     if (!Z)     {         printf("ERROR\n");         return 1;     }     printf("\nArray:\n");     for (int j = 0; j < n; j++)     {         for (int i = 0; i<3; i++)         {             if (i == 0)                 Z[i][j] = X[j];             if (i == 1)                 Z[i][j] = Y[j];             if (i == 2)                 Z[i][j] = (Y[j] + X[j]) / 2;             printf("%7.1f", Z[i][j]);         }         printf("\n");     }     for (int i = 0; i < 3; i++)         free(Z[i]);     free(Z); free(Y); free(X);     return 0; }

  1. Добрый день. Необходимо ввести с клавиатуры примерно такую последовательность: x x x o x - - - o А затем кой-какой алгоритм реализовать. Но это мелочи. Как оформить такой двумерный массив (3х3) символов?Добавлено через 4 минуты Сообщение от Aliksan Как оформить такой двумерный массив (3х3) символов? Для поиска и прочих процедур по выявлению 'x', 'o', '-' символов.Добавлено через 13 минут Затупил... C1 scanf("%s", &array[i][j]);Тему можно закрыть.

  1. Даны два произвольные одномерные массивы целых чисел М1 и М2 с одинаковым количеством элементов. Сформировать массив М3, элементами которого являются числа, образующиеся по формуле M3 [i] = M1 [i] + M2 [i].