Произвести замену в каждом массиве всех отрицательных элементов на значение их удвоенного модуля - C (СИ)

Узнай цену своей работы

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

Даны массивы А(20), В(12) и С(25). Произвести замену в каждом массиве всех отрицательных элементов на значение их удвоенного модуля ПРИ ПОМОЩИ ФУНКЦИИ Сделал вот что, помогите разобраться, почему не работает и что нужно доделать.
#include <stdio.h>
#include <conio.h>
 
void sozd (char x, int y)
{
    int i, p;
    printf("Massiv %s[%d]", x[y]);
    for (i=0; i<y; i++)
        {
            p=rand()%50;
            x[i]=p;
            prinf("%d", x[i]);
        }
}
 
void zamena (char x, int y)
{       
    int i;
    for (i=0; i<y; i++)
        {
            if(x[i]<0)
                x[i]=x[i]*(-2);
        }
 
}
int main()
{
    int i, p;
    char A,B,C;
    int s,x[i];
    
    sozd(A,20);
    sozd(B,12);
    sozd(C,25);

}

Решение задачи: «Произвести замену в каждом массиве всех отрицательных элементов на значение их удвоенного модуля»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#define N 20
#define M 12
#define K 25
 
//generator massiva
void generator(int vec[], const int size);
//vyvod masiva na ekran
void print(int vec[], const int size);
//funkcija zameny elementov
void change(int vec[], const int size);
 
int main() {
    //kazdyj raz budet generirovatsia drugoj massiv
    srand(time(NULL));
    int A[N], B[M], C[K];
    //generirujem tri massiva
    generator(A,N);
    generator(B,M);
    generator(C,K);
    //vyvodim tri massiva
    print(A,N);
    print(B,M);
    print(C,K);
    //proizvodim zamenu
    change(A,N);
    change(B,M);
    change(C,K);
    //vyvodim izmenionyje massivy
    print(A,N);
    print(B,M);
    print(C,K);
    getche();
}
 
void generator(int vec[], const int size) {
     for(int i=0; i<size; i++) {
             vec[i] = 5 - rand()%10;
     }
}
 
void print(int vec[], const int size) {
     printf("\nGenerated array with size: %d\n",size);
     for(int i=0; i<size; i++) {
             printf("%3d",vec[i]);
     }
}
 
void change(int vec[], const int size) {
     for(int i=0; i<size; i++) {
             if(vec[i] < 0) {
                       vec[i] = abs(vec[i]*2);
             }
     }
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с I/O, генерацией случайных чисел и математическими операциями
  2. Определяем константы для размера массивов
  3. Создаем функцию generator(), которая генерирует случайные значения для каждого элемента массива
  4. Создаем функцию print(), которая выводит сгенерированный массив на экран
  5. Создаем функцию change(), которая производит замену отрицательных элементов массива на удвоенное значение их модуля
  6. В функции main() создаем три массива (A, B, C) размером N, M и K соответственно и заполняем их случайными значениями с помощью функции generator()
  7. Выводим заполненные массивы на экран с помощью функции print()
  8. Производим замену отрицательных элементов в каждом массиве с помощью функции change()
  9. Выводим измененные массивы на экран с помощью функции print()
  10. Запускаем программу

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы