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

news2024/11/27 5:32:10

题目:

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

                 

允许输入三次密码

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

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

                    

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

                       

思路:

总体思路:

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

再设置一个变量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值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/627190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MIAOYUN“一云多芯”解决方案获评2023西部信创优秀解决方案

6月7日&#xff0c;由工业和信息化部电子第五研究所主办的“2023西部信息技术应用创新产业生态大会” 在重庆成功举办。会上&#xff0c;2023年西部地区信息技术应用创新优秀解决方案汇编正式发布&#xff0c;成都元来云志科技有限公司&#xff08;简称“MIAOYUN”&#xff09;…

现代化 Android 开发:基础架构

作者&#xff1a;古哥E下 Android 开发经过 10 多年的发展&#xff0c;技术在不断更迭&#xff0c;软件复杂度也在不断提升。到目前为止&#xff0c;虽然核心需求越来越少&#xff0c;但是对开发速度的要求越来越高。高可用、流畅的 UI、完善的监控体系等都是现在的必备要求了。…

从零开始 Spring Boot 36:注入集合

从零开始 Spring Boot 36&#xff1a;注入集合 图源&#xff1a;简书 (jianshu.com) 在前面一篇文章从零开始 Spring Boot 27&#xff1a;IoC中&#xff0c;讨论过依赖注入集合&#xff08;Java 容器&#xff09;的内容&#xff0c;这里更深入地讨论注入集合的相关内容。 我们…

ThinkPHP5学生学术管理系统

有需要请私信或看评论链接哦 可远程调试 ThinkPHP5学生学术管理系统 一 介绍 此学生学术管理系统基于ThinkPHP5框架开发&#xff0c;数据库mysql&#xff0c;前端Amazeui。系统角色分为学生用户和管理员。学生可以对个人信息&#xff0c;发表论文&#xff0c;专利授权&#x…

chatgpt赋能python:Python快速建站的SEO(搜索引擎优化)指南

Python快速建站的SEO&#xff08;搜索引擎优化&#xff09;指南 在当今数字时代&#xff0c;任何企业都需要一个强大和有效的网站。随着多个开源和商业网站平台的出现&#xff0c;建立一个网站变得更加容易。其中一个让人充满激情的开源工具是Python&#xff0c;它是一种流行的…

06_ MySQL优化实战

1. 计算并指定索引长度 阿里开发手册&#xff1a; 强制】在 varchar 字段上建立索引时&#xff0c;必须指定索引长度&#xff0c;没必要对全字段建立索引&#xff0c;根据实际文本区分度决定索引长度。 说明&#xff1a;索引的长度与区分度是一对矛盾体&#xff0c;一般对字符…

2.4 网络设计与redis、memcached、nginx组件

目录 一、网络模块需要处理哪些事情二、reactor网络设计模型三、网络模块与业务的关系四、redis、memcached、nginx1、redis2、memcached3、ngnix4、总结 一、网络模块需要处理哪些事情 网络编程主要关注客户端与服务端交互的四个问题&#xff1a; 1、连接建立 2、消息到达 3、…

学历不代表能力,但学历不够就意味着没资格!

今年的高考报名人数再创历史新高。 据悉&#xff0c;2023年全国高考报名人数1291万人&#xff0c;比去年增加98万人。 那么&#xff0c;今年的高校毕业生人数呢&#xff1f; 据人社部统计,今年我国高校毕业生人数达到1158万&#xff0c;继2022年破千万后再创历史新高。 大家…

Vue路由到新的页面,页面的名称需要改变

如下图&#xff1a;在页面中点击“属性列表”和“参数列表”的时候&#xff0c;要路由到新的页面&#xff0c;之后页面的title不用路由中的名称&#xff0c;而是用新的名称。也就是要显示对应的按钮名称&#xff0c;这个路由地址的名称是动态的。 在旧的页面上加上&#xff1a;…

汇报演示领导都说好,只因用了Smartbi幻灯片这个功能

在日常工作中&#xff0c;定期以PPT的方式汇报工作是非常常见的需求。假设你是一位销售经理&#xff0c;每个月都要参加公司的销售会议。在会议上&#xff0c;你需要向团队和高层展示销售数据、市场趋势和业绩报告等信息。过去&#xff0c;你通常是PPT来制作演示文稿&#xff0…

链表及相关面试题

链表 单链表 特点&#xff1a; 逻辑上顺序存储&#xff0c;物理上无序存储头指针根据情况而定&#xff0c;不保存数据&#xff0c;很多操作需要头指针&#xff0c;比如原地反转链表。每个节点包含 data, Node next保存下个Node public class LinkList {public Node headern…

系统初始化加载动画逻辑以及隐藏

需求&#xff1a;进入系统默认有如下的加载界面&#xff0c;但是由于网页内嵌到了其他网页中&#xff0c;这种环境下进入时再加载就不合适&#xff0c;需要隐藏掉。 因此本文的内容逻辑为 文章目录 研究加载逻辑解决需求&#xff1a;在被内嵌时隐藏掉loading 研究加载逻辑 1.…

【SpinalHDL快速入门】3、Scala 快速入门

SpinalHDL本质上来讲是Scala语言的一个库&#xff0c;所以需要先学习Scala&#xff0c;才能在此基础上学习SpinalHDL。 文章目录 Scala 基础Scala 数据类型&#xff08;5种&#xff1a;Boolean、Int、Float、Double、String&#xff09;Scala VariablesScala FunctionsReturnRe…

Python自动化测试框架:unittest介绍

Unittest是Python中最常用的测试框架之一&#xff0c;它提供了丰富和强大的测试工具和方法&#xff0c;可以帮助开发者更好地保证代码质量和稳定性&#xff0c;本文就来介绍下Unittest单元测试框架。 1. 介绍 unittest是Python的单元测试框架&#xff0c;它提供了一套丰富的测…

2023软件测试卷出天际!!!性能测试为啥一枝独秀?

近十年是中国互联网发展最快的10年&#xff0c;互联网用户从4亿增长至10亿。面对用户量的暴增&#xff0c;用户体验就成为互联网产品最大的考验。而 影响用户体验的最重要因素就是性能。 流量为王的时代&#xff0c;性能测试是所有产品上线前必须通过的重要环节。 企业招聘性…

12米与30米TanDEM-X数字高程模型DEM数据的下载申请方法

本文介绍全球12米与30米高空间分辨率的数字高程模型&#xff08;DEM&#xff09;数据——TanDEM-X数据的下载申请方法。 Tandem-X卫星项目于2010年6月启动&#xff0c;并于2010年6月21日和2010年12月21日分别发射两颗卫星&#xff0c;即TerraSAR-X和TanDEM-X。Tandem-X卫星之间…

裸辞3个月,面试了25家公司,这难度真不一般····

上半年裁员&#xff0c;下半年裸辞&#xff0c;有不少人高呼裸辞后躺平真的好快乐&#xff01;但也有很多人&#xff0c;裸辞后的生活五味杂陈。 面试25次终于找到心仪工作 因为工作压力大、领导PUA等各种原因&#xff0c;今年2月下旬我从一家互联网小厂裸辞&#xff0c;没想到…

【Android】WMS(五)输入事件原理

输入事件原理 安卓输入事件整体流程 Android 系统是由事件驱动的&#xff0c;而 input 是最常见的事件之一&#xff0c;用户的点击、滑动、长按等操作&#xff0c;都属于 input 事件驱动&#xff0c;其中的核心就是 InputReader 和 InputDispatcher。 InputReader 和 InputD…

申请国家标准项目管理专业人员能力评级(CSPM)报名条件有哪些?

2021年10月&#xff0c;中共中央、国务院发布的《国家标准化发展纲要》明确提出构建多层次从业人员培养培训体系&#xff0c;开展专业人才培养培训和国家质量基础设施综合教育。建立健全人才的职业能力评价和激励机制。由中国标准化协会&#xff08;CAS&#xff09;组织开展的项…

3.JavaScript常用对象数组对象

3.1、数组对象 3.1.1、概述 目录 3.1、数组对象 3.1.1、概述 3.1.2、创建数组 3.1.2.1、使用对象创建 3.1.2.2、使用字面量创建 3.1.3、遍历数组 3.1.4、数组属性 3.1.5、数组方法 3.2、函数对象 3.2.1、call()和apply() 3.2.2、this指向 3.2.3、arguments参数 3…