嗨,我尝试实现反向数组代码,但它似乎没有用,我真的不确定为什么。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); */
Run Code Online (Sandbox Code Playgroud)
void reverse(char, int); //declaration wrong
void reverse(char[], int);
^^^
Run Code Online (Sandbox Code Playgroud)
你的循环
for ( i = 0; i >= n ; i++) // this fails i=0, n=some size
Run Code Online (Sandbox Code Playgroud)
应该
for ( i = 0; i <= n ; i++)
Run Code Online (Sandbox Code Playgroud)
避免使用gets()usefgets()代替。
| 归档时间: |
|
| 查看次数: |
12941 次 |
| 最近记录: |