用C语言编写密码检验函数

要求:密码输入错误时,允许重新输入,最多三次。输入错误时会有提示,如果3次输入错误,程序停止,并提示“非法用户”。如果密码正确,提示“欢迎使用”。然后输出密码各位值之和。

#include<stdio.h>
#include<string.h>

int main()
{
	char psd[20];
	char input[20];
	int temp = 0;
	
	printf("请设置密码:");
	scanf("%s",psd);
	
	while(temp<3)
	{
		printf("请输入密码:");
		scanf("%s",input);
		if(strcmp(psd,input)==0)
		{
			printf("欢迎使用!\n");
			int sum = 0;//用来计算密码各位值之和 
			for(int i=0;i<strlen(psd);i++)
			{
				sum += psd[i]-'0';//字符是以 ASCII 码的形式存储,字符 '2', 写成'2' - '0'才能得到整数2 	
			} 
			printf("密码各位值之和:%d",sum);
			
			return 0;
		}
		else
		{
			printf("密码错误,请重新输入!\n");
			temp++;
		}
	}
	
	printf("非法用户!");
	return 1;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下函数: int is_rising_edge(int current_state, int previous_state) { if (current_state > previous_state) return 1; else return 0; } ### 回答2: 要编写一个函数来检测上升沿,我们可以使用C语言来实现。 下面是一个简单的函数示例,它会检测给定输入是否存在上升沿: ```c #include <stdio.h> int detectRisingEdge(int previous, int current) { if (previous == 0 && current == 1) { return 1; // 如果出现上升沿,返回1 } else { return 0; // 如果没有出现上升沿,返回0 } } int main() { int previousState = 0; // 初始状态设置为0 int currentState = 1; // 当前状态设置为1 int result = detectRisingEdge(previousState, currentState); if (result == 1) { printf("上升沿检测成功!\n"); } else { printf("没有检测到上升沿。\n"); } return 0; } ``` 在这个示例中,我们假设上一个状态是0,当前状态是1。如果遇到上升沿,即上一个状态为0且当前状态为1,函数将返回1,否则返回0。在 `main()` 函数中,我们调用 `detectRisingEdge()` 函数来检测上升沿,并根据返回值输出相应的消息。 以上代码只是一个简单的例子,实际的上升沿检测函数可能会更复杂,具体取决于你所需要检测的条件和输入。但是这个示例应该能够帮助你了解如何使用C语言编写一个基本的上升沿检测函数。 ### 回答3: 下面是用C语言编写的一个函数,用于检测输入信号的上升沿。 ```c int detect_rising_edge(int signal) { static int previous_state = 0; if (signal != previous_state && signal > previous_state) { previous_state = signal; return 1; // 上升沿检测成功 } previous_state = signal; return 0; // 没有检测到上升沿 } ``` 这个函数使用了一个静态变量`previous_state`来保存上一次输入信号的状态。每次调用函数时,将输入信号与上一次状态进行比较。如果当前信号与上一次的状态不同且当前信号大于上一次的状态,则表示检测到了上升沿。 函数的返回值为`1`表示检测到了上升沿,返回值为`0`表示没有检测到上升沿。 注意,此函数只能检测输入信号为整数的上升沿,如果输入信号是浮点数或其他类型,需要对函数进行适当的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值