菜鸟创造的奇迹~~,5分求教”不等于号“的力量,

来源:百度知道 编辑:UC知道 时间:2024/06/03 15:53:26
我刚开始学C不久,看教育视频做的一条题:输入一个字符串,创造一个函数看输入的字符串第一个字母和最后一个字母是否相同(不论大小写),接着第二个字母和倒数第二个字母(不论大小写),一直比到中间结束;自己做完后,函数用不等号,他的返回值都是1哦~~~55555,不知道怎么用“不等号”哦~~下面的简略了很多东东:

#define N 50
main()
{char s[n-1];
printf("\n");
scanf("%s",s);
printf("=================\n");
printf(" %d ",thig(s));
}
ting(s)
char *s;
{char *a,*b;int i;
a=s;
b=s+strlen(s)-1;
for(;b>a;a++,b--)
if(*a!=*b-('z'-'Z')||*a!=*b||*a!=b+('z'-'Z')) /*>.<*/
return(1);
return(2);
}
不知道是不是/*>.<*/那行出问题哦,不管输入jaj或Jaj或jaJ或jaa结果返回值都是1哦;
如果/*>.<*/行改成if(*a==*b-('z'-'Z')||*a==*b||*a==b+('z'-'Z'));输入jaj或jaJ或Jaj的返回值是1,而jaa的返回值变成2了;(555555,终于有变化了);
接着if(!(*a==*b-('z'-'Z')||*a==*b||*a==b+('z'-'Z')));终于得到想要的效果了,但问题是不明白第一次写的用不等号那里为什么都是1阿~~~我是想知道为什么,和应该怎么改才能用!=(不等号)来实现哦,为

楼主唉, 看好 && 和 || 的区别啊
||并列 3个条件只要有一个为真(为1)则整体为真;你那3个条件,显然总有2个是成立的,当然总是1了! 毫不奇怪,跟不等号没有任何关系。