我检查了一些在C中反转数组的视频,因此我知道我的逻辑是正确的.这是我的代码:
#includevoid reverse( int arr[], unsigned int len ) { int i=0; int n=len; int j=len-1; int temp; while (i 它输出相同的数组.我找不到问题所在.我应该为
reverse
功能返回一些东西吗?
1> Amadan..:你正在反转阵列两次; 这就是你拥有原始阵列的原因.
怎么样?举一个10元素数组的例子.作为您的第一步,您将交换第0和第9个元素.作为你的最后一步,你将交换第9和第0个元素.净结果:没有变化.
你不想跑
i
最多n
.你想运行i
达j
,让你永不掉回元素(即改变的条件while (i < j) { ... }
)