我编写一个判断一学生是否属于一班级的程序,如下:#define MAX 5#define LEN 10main(){int i;char name[LEN];static char list [MAX][LEN]={"Zhang","Wang","Li","Tan","Ling"};printf("Enter your name:");gets(name);for(i=0;i<MAX;i++)if(strcmp(list[i],name)==0)printf("%s is in our class\n",name);elseprintf("%s is not in our class\n",name);}编译没有错误,但在执行时,结果显示:Enter your name: ZhangZhang is in our classZhang is not in our classZhang is not in our classZhang is not in our classZhang is not in our classPress any key to continue请问这是什么原因?书上的原程序是:#define MAX 5#define LEN 10main(){int i,flag=0;char name[LEN];static char list [MAX][LEN]={"Zhang","Wang","Li","Tan","Ling"};printf("Enter your name:");gets(name);for(i=0;i<MAX;i++)if(strcmp(list[i],name)==0)flag==1;if(flag==1)printf("%s is in our class\n",name);elseprintf("%s is not in our class\n",name);}和我自己编写的差别是多加了flag,请问这个flag是什么作用?是编写strcmp这个比较功能的函数时必须使用的吗?
3 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
flag的作用就是标志着我们是否找到我们输入的名字。
你看flag被初始化为0,意思就是在查找之前呢,我们默认是没找到的。
当strcmp返回0,表示字符数组中有一个字符和我们输入的相同,那么不就是找到了吗?然后我们就把flag设置成0.
那么接着我们再判断flag的值就可以知道我们是否找到字符串了。
- 3 回答
- 0 关注
- 342 浏览
添加回答
举报
0/150
提交
取消