C语言编程问题,不懂求解答

截得其中的一段

我想问问其中k=0,k=1的作用,新手不懂求问求解答~!!!!
还有if(k==0)什么意思。。。。

int main()
{
int i,k=0;
char username[15],usernode[6];
system("color 3f");//*************************改变编译器窗口颜色和字符颜色
/*
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 湖蓝色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
*/
printf("\n\n\n\t\t欢迎进入学生信息管理系统!\n\n\n");
printf("\t\t\t系统编程员:王誉睿\n\n");
printf("\t\t\t\t\t2016.06.20\n\n");
for(i=0;i<3;i++)
{

       printf("\n\n\n\t\t请输入您的姓名:\n\n\n");
       gets(username);
       printf("\n\n\n\t\t请输入您的6位密码:\n\n\n");
       gets(usernode);
       if(strcmp(username,"wangyurui")==0&&strcmp(usernode,"666666")==0)
       {
           printf("\n登陆成功!");
           wait();
           k=1;
           homepage();
           break;
       }
       else
       {
           system("cls");
           printf("\n\n\t\t\t您输入的姓名或密码有误!\n\n");
           printf("\t\t\t请重新输入:\n");
           continue;
       }
   }
   if(k==0)
       printf("\n\n\t\t\t您已连续3次输入错误!!!\n\n");
       printf("\t\t\t您将被强行退出程序!\n\n");
       printf("\t\t\t正在退出程序\t");
       wait();
       quit();

}

k相当于是循环判断的标志位
大概意思是:
输入的名字是“wangyurui”密码是“666666”密码匹配此时k的值为1,就不会再进入循环并退出提示“登陆成功!”
如果连续输错3次密码,每次都会提示你“您输入的姓名或密码有误! 请重新输入:”直到for循环判断次数到了3次,进行下面的if判断,那么k还是初始值0,则提示您已连续3次输入错误!!!!!”等!等
希望采纳

k相当于是个判断的标志位
情况分成:
1.连续输错3次密码,那么也就是说一次也没有进入if分支,那么k还是保持初始值0(然后退出程序了)
2.输对了密码,那么此时k的值为1,就不会再进入后面的if(k==0)分支

在计算机语言中,一个等号”=“是赋值,将等号右面的值赋给等号左边的变量。
”==“是判断是否相等,运算结果是布尔类型,即true或false

1楼解释对的,另外按照你的代码,if(k==0)后面要加{ },如下

{
       printf("\n\n\t\t\t您已连续3次输入错误!!!\n\n");
       printf("\t\t\t您将被强行退出程序!\n\n");
       printf("\t\t\t正在退出程序\t");
       wait();
       quit();
 }

k相当于是循环判断的标志位
大概意思是:
输入的名字是“wangyurui”密码是“666666”密码匹配此时k的值为1,就不会再进入循环并退出提示“登陆成功!”
如果连续输错3次密码,每次都会提示你“您输入的姓名或密码有误! 请重新输入:”直到for循环判断次数到了3次,进行下面的if判断,那么k还是初始值0,则提示“您已连续3次输等!!”等!等
希望采纳

这个程序循环3次,每次循环判断username和usernode是否匹配,如果匹配的话则k的值赋值为1并结束循环,否则提示错误信息跳过本次循环。。
循环结束时,如果k为0,由于k的初始值为0,则前面3次循环都没有进入登录成功的if分支。则为3次循环都匹配失败。输出提示信息。

其中k=0,k=1的作用识别你是否登录成功

k是个一个标志,为0表示未登陆,为1表示已登陆。
所以初始的时候为0,登陆成功之后设置成1.

if(k == 0) 的意思是 如果没有登陆 就做什么

前面有个for循环,i=0; i <3; i ++;
即最多循环三次,在三次输入的用户名和密码不对的情况下,就会造成后面的 if (k==0) 条件的成立,进而退出程序。


基本的知识还是需要多巩固一下才行

上述代码段中k用来做一个标记~