我編寫一個判斷一學(xué)生是否屬于一班級的程序,如下:#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);}編譯沒有錯誤,但在執(zhí)行時,結(jié)果顯示: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這個比較功能的函數(shù)時必須使用的嗎?
3 回答

元芳怎么了
TA貢獻(xiàn)1798條經(jīng)驗 獲得超7個贊
flag的作用就是標(biāo)志著我們是否找到我們輸入的名字。
你看flag被初始化為0,意思就是在查找之前呢,我們默認(rèn)是沒找到的。
當(dāng)strcmp返回0,表示字符數(shù)組中有一個字符和我們輸入的相同,那么不就是找到了嗎?然后我們就把flag設(shè)置成0.
那么接著我們再判斷flag的值就可以知道我們是否找到字符串了。
- 3 回答
- 0 關(guān)注
- 363 瀏覽
添加回答
舉報
0/150
提交
取消