很简单的一个C语言语法问题,不是很清楚,懂得跟我解释一下

#include<stdio.h>#include<string.h>intmain(intargc,char*argv[]){chara[100];intn,q,w,e... #include <stdio.h>
#include<string.h>
int main(int argc, char *argv[])
{
char a[100];
int n,q,w,e,r,len,i,j;
scanf("%d",&n);
getchar();
while(n--)
{
q=w=e=r=0;
gets(a);
len=strlen(a);
if(len<8||len>16)
{
printf("NO\n");
continue;
}
for(i=0;i<len;i++)
{
if(a[i]>='A'&&a[i]<='Z')q=1;
else if(a[i]>='a'&&a[i]<='z')w=1;//
else if(a[i]>='0'&&a[i]<='9')e=1; // 为什么这句和上句用elseif就对了,之前用if就错了
else r=1;
}
if(q+w+e+r>=3) printf("YES\n");
else printf("NO\n");

}
return 0;
}
展开
 我来答
wchyumo2011
2015-06-18 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2735万
展开全部
if-else if-else 这是一个组合,这个组合中只有第一个判断条件为真的部分的语句快才会被执行,后面的都不会再判断并执行了。
多个if,他会每个都判断一下,只要为真,就会执行。
更多追问追答
追问
能举个例子给我我这三个if一个else的运行方式么
追答
比如成绩,90以上是a,80以上是b,70以上是c,60以上是d,其他是e,那么,你给一个成绩是95,这个成绩就会是在60,70,80,90以上,如果用if那么,这些条件就都满足,会输出abcd,如果第一个是if 大于90,其他是else if 和else,那么由于第一个if为真,那么后面的else if和else 就不会再判断了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式