Я постараюсь помочь пошагово и объяснить, как можно заставить это скомпилировать и запустить, и постараюсь помочь вам понять, что происходит.
В строке 4 вы объявляете swap_array
функция, которая в настоящее время принимает в качестве входных данных 3 переменные типа int.Однако вместо этого вы хотите передать массивы (чтобы вы могли поменять их местами) для первых двух параметров, используя нотацию []
(например, int array1[]
).То же самое касается функции print_array
чуть ниже.Вы также должны сделать это в определениях этих функций (в строках 21 и 34).
Давайте теперь рассмотрим основную функцию.В настоящее время вы создаете array
в основной функции.Отлично.Все в порядке.Однако сразу после этого вы звоните swap_array
с аргументами array1
и array2
.Вы не объявили и не инициализировали эти две переменные в своей основной функции, поэтому ваша программа не знает, что делать.
Итак, что вам нужно сделать в main, это создать два массива, array1
и array2
(аналогично тому, как вы делаете это для массива) и затем передаете их в функцию swap_array.
Наконец, вы вызываете print_array с аргументами print1
и print2
.Опять же, эти переменные нигде не видны в вашей основной.Что именно вы хотите напечатать?Вы хотите напечатать два только что замененных массива: array1
и array2
.Следовательно, это должны быть аргументы, которые вы вводите в функцию печати, а не print1
и print2
.
Я думаю, вы путаетесь между разницей между параметрами и аргументами.В строках 3, 4, 5, 21, 34 и 47 вы объявили / определили функции.В этих функциях есть параметры.Эти параметры используются непосредственно в функции как часть ваших расчетов.Думайте о них как о «заполнителях» для реальных ценностей.Когда вы вызываете функцию (например, в main), вы можете установить значения этих параметров на то, что вам нужно (например, значение или значение переменной), и они называются аргументами (как вы делаете в строках 15, 16 и 17).
Надеюсь, это поможет.Вы должны быть в состоянии скомпилировать и запустить эти изменения.