C语言:编写代码实现,模拟用户登录情景,并且只能登录三次

题目:

编写代码实现,模拟用户登录情景,并且只能登录三次

                 

允许输入三次密码

如果密码正确提示登录成功

如果三次均输入错误,则退出程序

                    

 =========================================================================

                       

思路:

总体思路:

(一). 生成相关变量存放输入数据的字符数组

再设置一个变量flag方便后面判断密码是否一致

一致则把flag改为1不一致还是0

              

(二). 使用for循环循环输入三次数据

                     

(三) . 在for循环中设置if条件判断语句循环判断三次数据

                   

(四). 跳出for循环后看变量flag情况打印退出程序信息

                


                 

第一步:

(1). 生成相关变量

            

(2). 生成存放输入数据的字符数组

                 

(3). 设置一个变量flag

方便后面判断密码是否一致

一致把flag改为1不一致还是0.

                     

实现代码:

#include <stdio.h>
int main()
{
	//生成相关变量:
	int i = 0; //循环变量

	//生成存放输入数据的字符数组
	char password[20] = { 0 };

	//设置一个变量flag:
	int flag = 0;


	return 0;
}

实现图片:

                 


                 

第二步:

(1). 使用for循环,循环输入三次数据

                      

(2). 输入字符串可以使用:scanf("%s", password);

因为 password数组名,是数组首地址,所以不用加取地址符&

                     

实现代码:

#include <stdio.h>
int main()
{
	//生成相关变量:
	int i = 0; //循环变量

	//生成存放输入数据的字符数组
	char password[20] = { 0 };

	//设置一个变量flag:
	int flag = 0;

	//使用for循环,循环输入三次数据:
	for (i = 0; i < 3; i++)
	{
		//输入前先打印提示信息:
		printf("请输入密码:");
		//输入数据:
		scanf("%s", password);
		//因为password是数组,数组名是数组首地址,所以不用取地址符&


	}

	return 0;
}

实现图片:

                 


                 

第三步:

(1). 在for循环中设置if条件判断语句循环判断三次数据

             

(2). 判断密码(字符串是否相等

               

两个字符串比较不能使用 == (等于),应该使用

strcmp(字符数组名,"要比较的字符串")

库函数,需添加头文件: <string.h>

                      

strcmp 返回 0 :表示2个字符串相等

strcmp 返回 >0 的数字:表示 第一个字符串 大于 第二个字符串

strcmp 返回 <0 的数字:表示 第一个字符串 小于 第二个字符串

                 

字符串比较大小:比较的是对应位置字符的ASCII值

如:

abcdabq 比较:

第一位:a == a

第二位:b == b

第三位c < q 

c的ASCII值 小于 q的ASCII值

所以 abcd < abq

             

(3). 如果密码正确打印相应信息,设置flag为1,使用break跳出循环

              

(4). 如果密码错误打印相应信息

                     

实现代码:

#include <stdio.h>
#include <string.h>
int main()
{
	//生成相关变量:
	int i = 0; //循环变量

	//生成存放输入数据的字符数组
	char password[20] = { 0 };

	//设置一个变量flag:
	int flag = 0;

	//使用for循环,循环输入三次数据:
	for (i = 0; i < 3; i++)
	{
		//输入前先打印提示信息:
		printf("请输入密码:");
		//输入数据:
		scanf("%s", password);
		//因为password是数组,数组名是数组首地址,所以不用取地址符&

		//设置if条件判断语句循环判断三次数据
		if (strcmp(password, "123456") == 0)
			//假设密码是 123456 ,如果相等会返回 0,说明输入的和密码相同
		{
			printf("登录成功\n");
			flag = 1;
			break; //成功则跳出循环
		}
		else
		{
			printf("密码错误\n");
		}
	}

	return 0;
}

实现图片:

                 


                 

第四步:

跳出 for循环 后 ,看变量flag情况打印退出程序信息

                     

实现代码:

#include <stdio.h>
#include <string.h>
int main()
{
	//生成相关变量:
	int i = 0; //循环变量

	//生成存放输入数据的字符数组
	char password[20] = { 0 };

	//设置一个变量flag:
	int flag = 0;

	//使用for循环,循环输入三次数据:
	for (i = 0; i < 3; i++)
	{
		//输入前先打印提示信息:
		printf("请输入密码:");
		//输入数据:
		scanf("%s", password);
		//因为password是数组,数组名是数组首地址,所以不用取地址符&

		//设置if条件判断语句循环判断三次数据
		if (strcmp(password, "123456") == 0)
			//假设密码是 123456 ,如果相等会返回 0,说明输入的和密码相同
		{
			printf("登录成功\n");
			flag = 1;
			break; //成功则跳出循环
		}
		else
		{
			printf("密码错误\n");
		}
	}

	//跳出 for循环 后,看变量flag情况打印退出程序信息。
	if (flag == 0)
	{
		printf("退出程序");//密码错误 则 退出程序
	}

	return 0;
}

实现图片:

                    

最终代码和实现效果

最终代码:

#include <stdio.h>
#include <string.h>
int main()
{
	//生成相关变量:
	int i = 0; //循环变量

	//生成存放输入数据的字符数组
	char password[20] = { 0 };

	//设置一个变量flag:
	int flag = 0;

	//使用for循环,循环输入三次数据:
	for (i = 0; i < 3; i++)
	{
		//输入前先打印提示信息:
		printf("请输入密码:");
		//输入数据:
		scanf("%s", password);
		//因为password是数组,数组名是数组首地址,所以不用取地址符&

		//设置if条件判断语句循环判断三次数据
		if (strcmp(password, "123456") == 0)
			//假设密码是 123456 ,如果相等会返回 0,说明输入的和密码相同
		{
			printf("登录成功\n");
			flag = 1;
			break; //成功则跳出循环
		}
		else
		{
			printf("密码错误\n");
		}
	}

	//跳出 for循环 后,看变量flag情况打印退出程序信息。
	if (flag == 0)
	{
		printf("退出程序");//密码错误 则 退出程序
	}

	return 0;
}

实现效果:

总结:

学习 strcmp()库函数 的使用:

用于判断两字符串是否相等需添加头文件: <string.h>

                      

strcmp(字符数组名,"要比较的字符串")

                   

strcmp 返回 0 :表示2个字符串相等

strcmp 返回 >0 的数字:表示 第一个字符串 大于 第二个字符串

strcmp 返回 <0 的数字:表示 第一个字符串 小于 第二个字符串

                 

字符串比较大小:比较的是对应位置字符的ASCII值

猜你喜欢

转载自blog.csdn.net/weixin_63176266/article/details/131124864