【发布时间】:2020-08-06 01:53:25
【问题描述】:
我的程序需要做以下事情:
- 反转一个数组(例如
niz[] = { 2, 4, 5, 7, 4, 8, 3 }需要变成niz[] = { 3, 8, 4, 7, 5, 4, 2 } - 将反转数组的值存储到一个全新的数组中
- 所有这些都必须在不使用
printf的情况下完成,该函数将数组反转并将值存储到新数组中。此外,需要预定义数组及其大小(因此无需用户输入)。 - 需要在
main中打印结果(在这种情况下是包含前一个数组反转值的新数组)
但是,不是反转数组并将其存储到新数组中并返回它。该程序总是打印以下数字:
6356668
那么有人在我的代码中看到了问题吗?
int koko(int *array, int *array2, int c, int d) {
for (c = 6; c > -1; c--, d++) {
array2[d] = array[c];
}
return array2;
}
int main() {
int niz[] = { 2, 4, 5, 7, 4, 8, 3 };
int niz2[7];
int a, b, c;
c = koko(niz, niz2, a, b);
printf("%d", c);
}
【问题讨论】:
-
您正在传入(并使用)未分配值的 b。
-
虽然不是问题的原因,但您也不必要地传入了
a,并且从未真正使用传入的值(尽管a无论如何都未初始化)。 -
除了您传入未分配的变量这一事实。在你的
koko函数中,为什么不在函数内部声明int c和int d?这将减少传入的参数数量并使代码更具可读性。
标签: c arrays reverse function-definition