#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char s[80]; char a[80]; fgets(s,80,stdin); int i, j; j = strlen(s) - 1; for (i = 0; i < j; i++) { a[i] = s[j - i - 1]; } for (i = 0; i < (j + 1) / 2; i++) { if (a[i] != s[i]) { printf("no"); return 0; } } printf("yes"); return 1; } 这串代码问题
时间: 2024-03-24 15:37:53 浏览: 75
#include <stdio.h>
这段代码的问题在于最后返回值是 1,而不是 0 或者 -1。在 C 语言中,main 函数的返回值应该是 int 类型,约定返回值为 0 表示程序正常结束,返回其他值表示程序异常结束。因此,在这段代码中,应该将最后的 `return 1;` 改为 `return 0;` 或者 `return -1;`。
修正后的代码如下:
```
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char s[80];
char a[80];
fgets(s,80,stdin);
int i, j;
j = strlen(s) - 1;
for (i = 0; i < j; i++) {
a[i] = s[j - i - 1];
}
for (i = 0; i < (j + 1) / 2; i++) {
if (a[i] != s[i]) {
printf("no");
return 0;
}
}
printf("yes");
return 0;
}
```
阅读全文