详细叙述:编写代码实现,模拟用户登录情景,并且只能登录三次(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序)
答案:
#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");