题目:编写代码模拟三次密码输入的场景,最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。
设计思路:
1、首先用数组存放用户输入的密码,定义字符数组char password[].
2、用for循环控制密码的输入次数,在for循环内部进行输入数值判断,如果正确则显示登陆成功,否则让重新输入,当输入次数超过三次以后,跳出循环并显示退出登录。
注:在使用if语句进行判断时,我们对字符串的比较应当使用strcmp
strcmp 引用头文件 string.h
strcmp用于比较两个字符串,设这两个字符串为str1,str2,则:
若str1=str2,则返回0;若str1<str2,则返回负数;若str1>str2,则返回正数。
两个字符串自左向右逐个字符相比(按ASCII值大小相比较)
直到出现不同的字符或遇'\0'为止。如:
"A"<"B" "a">"A" "computer">"compare"
代码设计:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
char password[20] = { 0 };
for (i = 0;i < 3;i++)
{
printf("请输入六位密码:>");
scanf("%s", password);
if (strcmp(password, "123456") == 0)
{
printf("登陆成功\n");
break;
}
else
{
printf("密码错误,请重新输入\n");
}
}
if (i == 3)
printf("三次密码错误,退出登录\n");
system("pause");
return 0;
}
以上均为C语言所写,后来因为学习了Java所以补充一下Java解决该问题的代码,如下所示。
import java.util.Arrays;
import java.util.Scanner;
public class Password{
public static void main(String[] args) {
for(int i=0;i<3;i++){
System.out.println("请输入6位密码:>");
Scanner in = new Scanner(System.in);
String password =in.next();
if(password.equals("123456")){
System.out.println("登陆成功");
break;
} else {
System.out.println("密码错误,请重新输入");
}
}
}
}