Произвести замену в каждом массиве всех отрицательных элементов на значение их удвоенного модуля - 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()
- Запускаем программу