程序能够正常运行,但是报错访问无效数据,源码是自己写的
当第17行中的<=号改为<号后就不提示报错了
但我没想明白为什么越界了
主要因为我这边逻辑始终没弄清楚,我总觉得<号的逻辑不合适,但是还是运行成功了
代码:
//判断一个输入的字符串是否回文
#include <stdio.h>
int main()
{
int ct = 0, y = 1;
char a[40];
printf("回文判断\n请输入一段字符串:");
gets_s(a, 40);
//判断字符串长度
for (int i = 0; i < 40; i++)
{
if (a[i] != 0)
ct++;
else break;
}
for (int i = 0; i <=(ct/2); i++)
{
if (a[i] != a[ct - (i + 1)])
{
y = 0;
break;
}
}
if (y)
printf("是回文");
else
printf("不是回文");
return 0;
}
代码测试没毛病啊,是不是没保存啊?保存一下再编译试试
19行前你没有对ct是否等于零做判断。当ct=0时19行会出bug。