gpt4 book ai didi

c - 在 C 中反转数组?

转载 作者:太空狗 更新时间:2023-10-29 15:02:23 25 4
gpt4 key购买 nike

您好,我试图实现一个反向数组代码,但它似乎不起作用,我真的不确定为什么。 For 循环似乎不起作用。我不知道为什么,因为逻辑对我来说似乎很正确。

#include <stdio.h>
#include <string.h>

void reverse(char, int);

int main()
{
char a[100];
gets(a);

reverse(a, strlen(a)-1);

printf("%s\n",a);
getchar();
getchar();
getchar();
return 0;
}

void reverse(char ar[], int n)
{
char c;
int i = 0;
printf("n = %d" , n);
for ( i = 0; i >= n ; i++){
c = ar[i];
ar[i] = ar[n];
ar[n] = c;
printf("Processed");
n--;}

}


/*
if (begin >= n)
return;

c = *(x+begin);
*(x+begin) = *(x+n);
*(x+n) = c;
offs = x++;
printf("Begin = %d , n = %d, offs = %p \n", begin, n, offs);
reverse(x, ++begin, --n); */

最佳答案

void reverse(char, int);  //declaration wrong

void reverse(char[], int);
^^^

你的循环

for ( i = 0; i >= n ; i++) // this fails i=0, n=some size

应该是

for ( i = 0; i <= n ; i++)

避免使用 gets() 而使用 fgets()

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

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