Произвести замену в каждом массиве всех отрицательных элементов на значение их удвоенного модуля - 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);
- }
- }
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с I/O, генерацией случайных чисел и математическими операциями
- Определяем константы для размера массивов
- Создаем функцию generator(), которая генерирует случайные значения для каждого элемента массива
- Создаем функцию print(), которая выводит сгенерированный массив на экран
- Создаем функцию change(), которая производит замену отрицательных элементов массива на удвоенное значение их модуля
- В функции main() создаем три массива (A, B, C) размером N, M и K соответственно и заполняем их случайными значениями с помощью функции generator()
- Выводим заполненные массивы на экран с помощью функции print()
- Производим замену отрицательных элементов в каждом массиве с помощью функции change()
- Выводим измененные массивы на экран с помощью функции print()
- Запускаем программу
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д