gpt4 book ai didi

c - 在c中反转数组

转载 作者:太空狗 更新时间:2023-10-29 16:00:57 30 4
gpt4 key购买 nike

我查看了一些用 C 语言反转数组的视频,因此我知道我的逻辑是正确的。这是我的代码:

#include <stdio.h>
void reverse( int arr[], unsigned int len )
{
int i=0;
int n=len;
int j=len-1;
int temp;

while (i<n)
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
i++;
j--;
}
}

void reverse( int arr[], unsigned int len );

int main( void )
{
int a[] = {11, 19, 13};
unsigned int len = 3;

reverse( a, len );

int k=0;
for( k=0; k<len; k++ )
{
printf( "%d ", a[k] );
}
printf( "\n" );

return 0;
}

它输出相同的数组。我找不到问题出在哪里。我应该为 reverse 函数返回一些东西吗?

最佳答案

你正在颠倒数组两次;这就是您拥有原始数组的原因。

如何?以一个 10 元素数组为例。作为第一步,您将交换第 0 个和第 9 个元素。作为最后一步,您将交换第 9 和第 0 个元素。最终结果:没有变化。

你不想运行 i最多 n .你想运行 i最多 j ,这样你就永远不会交换元素(即将条件更改为 while (i < j) { ... } )

关于c - 在c中反转数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41842714/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com