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

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

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

Даны массивы А(20), В(12) и С(25). Произвести замену в каждом массиве всех отрицательных элементов на значение их удвоенного модуля ПРИ ПОМОЩИ ФУНКЦИИ Сделал вот что, помогите разобраться, почему не работает и что нужно доделать.
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. void sozd (char x, int y)
  4. {
  5. int i, p;
  6. printf("Massiv %s[%d]", x[y]);
  7. for (i=0; i<y; i++)
  8. {
  9. p=rand()%50;
  10. x[i]=p;
  11. prinf("%d", x[i]);
  12. }
  13. }
  14. void zamena (char x, int y)
  15. {
  16. int i;
  17. for (i=0; i<y; i++)
  18. {
  19. if(x[i]<0)
  20. x[i]=x[i]*(-2);
  21. }
  22. }
  23. int main()
  24. {
  25. int i, p;
  26. char A,B,C;
  27. int s,x[i];
  28. sozd(A,20);
  29. sozd(B,12);
  30. sozd(C,25);
  31.  
  32. }

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <math.h>
  6. #define N 20
  7. #define M 12
  8. #define K 25
  9.  
  10. //generator massiva
  11. void generator(int vec[], const int size);
  12. //vyvod masiva na ekran
  13. void print(int vec[], const int size);
  14. //funkcija zameny elementov
  15. void change(int vec[], const int size);
  16.  
  17. int main() {
  18.     //kazdyj raz budet generirovatsia drugoj massiv
  19.     srand(time(NULL));
  20.     int A[N], B[M], C[K];
  21.     //generirujem tri massiva
  22.     generator(A,N);
  23.     generator(B,M);
  24.     generator(C,K);
  25.     //vyvodim tri massiva
  26.     print(A,N);
  27.     print(B,M);
  28.     print(C,K);
  29.     //proizvodim zamenu
  30.     change(A,N);
  31.     change(B,M);
  32.     change(C,K);
  33.     //vyvodim izmenionyje massivy
  34.     print(A,N);
  35.     print(B,M);
  36.     print(C,K);
  37.     getche();
  38. }
  39.  
  40. void generator(int vec[], const int size) {
  41.      for(int i=0; i<size; i++) {
  42.              vec[i] = 5 - rand()%10;
  43.      }
  44. }
  45.  
  46. void print(int vec[], const int size) {
  47.      printf("\nGenerated array with size: %d\n",size);
  48.      for(int i=0; i<size; i++) {
  49.              printf("%3d",vec[i]);
  50.      }
  51. }
  52.  
  53. void change(int vec[], const int size) {
  54.      for(int i=0; i<size; i++) {
  55.              if(vec[i] < 0) {
  56.                        vec[i] = abs(vec[i]*2);
  57.              }
  58.      }
  59. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы