判断回文字符怎么写T.T
length+1-i
改为
length-1-i
字符串的长度设置短了,10个字符的字符串,应该设置长度为11。
程序没报错啊!运行错误截图看下!
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, j, len, flag = 1;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0, j = len - 1; i < len / 2; i++, j--)
{
if (str[i] != str[j])
{
flag = 0;
break;
}
}
if (flag)
printf("%s是回文字符\n", str);
else
printf("%s不是回文字符\n", str);
return 0;
}
例如 你定义
#define mul(a,b) a*b
就像下面输出结果是41而不是66
int main()
{
int a=5,b=6;
int c=mul(a+b,b);
printf("%d\n",c);
}
mul(a+b,b)并不是按(a+b)*b 而是 a+b*b输出结果 并没有运算规则 他是完整的把a+b 传递给了a 其实说成没有运算规则不严谨 只是没有按照我们给他的设想去计算,它比较死,一股脑传递过去 自然成了a+b*b
#define mul(a,b) (a)*(b)
结果自然是66