详细叙述:编写代码实现,模拟用户登录情景,并且只能登录三次(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序)

答案:

#include<stdio.h>
#include<string.h>
int main()
{
int i;
char password[20]={0};
for(i=0;i<3;i++)
{
printf("请输入密码:");
scanf("%s",password);
//if(password=="123456")//==不能原来比较字符串是否相等,应该使用一个库函数
if(strcmp(password,"123456")==0)
{
printf("登录成功\n");
break;
}
else
{
printf("密码错误\n");
}
}
if(i==3)
printf("三次密码均错误,退出程序\n");
return 0;
}

温馨提示:这里的密码为系统已经设置好的,不需要我们进行编写密码,这里我们假装固定“123456”为系统密码;“==”不能用来比较字符串大小,也就是说strcmp(password,"123456")==0来自头文件#include<string.h>不能写成if(password==“123456”)

1.分析题目 理清思路

首先有循环结构,循环内部存在三次循环的错误与否但都能输对一次密码

其次外部有三次都输入错误的情况

2.对于该密码首先要有密码的存在即

char password[20]={0};

3.对于输入三次密码的循环

  for(i=0;i<3;i++)

其中,在内部有可能输入会错误,但成功次数不超过三次

  if(strcmp(password,"123456")==0)
{
printf("登录成功\n");
break;
}
else
{
printf("密码错误\n");
}

注:strcmp(password,"123456")==0来自头文件#include<string.h>

基本形式为

strcmp(str1,str2)

若str1==str2,则要返回0;str1<str2,则要返回负数;str1>str2,则要返回正数

4.如果三次都密码错误,我们就要跳出循环,直接输出

if(i==3)
printf("三次密码均错误,退出程序\n");