1106190679 发表于 2018-3-16 21:41:15

求大神指导!!!

#include<stdio.h>
int main()
{
        char s[]={"012xy"};
        int i,n=0;
        for(i=0;s!=0;i++)
                if(s>='a'&&s<='z')
                        n++;
                printf("%d\n",n);
        return 0;
}
请问这个代码为什么输出得是2

wjp 发表于 2018-3-16 21:50:21

只有当s值为x,y时if语句执行n自加,所以等于2

Zmynx_2017 发表于 2018-3-16 21:52:41

if条件语句是s是小写字母的意思,只有x,y满足条件,所以,只能是2了啊。

1106190679 发表于 2018-3-16 21:53:27

wjp 发表于 2018-3-16 21:50
只有当s值为x,y时if语句执行n自加,所以等于2

但是for里面的条件是s!=0,可是s的值就是0,这是为什么

wjp 发表于 2018-3-16 21:57:35

1106190679 发表于 2018-3-16 21:53
但是for里面的条件是s!=0,可是s的值就是0,这是为什么

那个0是字符 它的值是它的ascii码

1106190679 发表于 2018-3-16 21:59:10

Zmynx_2017 发表于 2018-3-16 21:52
if条件语句是s是小写字母的意思,只有x,y满足条件,所以,只能是2了啊。

可是循环条件是是s!=0

wjp 发表于 2018-3-16 22:03:05

1106190679 发表于 2018-3-16 21:59
可是循环条件是是s!=0

s!=0,这个0是数字不是字符,字符要用''括起来'0'这样写才是字符

1106190679 发表于 2018-3-16 22:07:48

wjp 发表于 2018-3-16 22:03
s!=0,这个0是数字不是字符,字符要用''括起来'0'这样写才是字符

这样啊,知道了,谢谢
页: [1]
查看完整版本: 求大神指导!!!