编程成长日记————模拟三次输入密码

简单的模拟取钱时输入密码:

#include<stdio.h>
#include<windows.h>
#include<string.h>
int main ()
{
	int i=0;
	int n=2;
	char passwd[10];
	char *p="123456";
	for (i=0;i<3;i++)
	{
		printf("请输入密码:\n");
	    scanf("%s",passwd);
		if (strcmp(p,passwd)==0)
		{
			break;
		}
		else 
		{
			printf("密码错误,请重新输入!您还有%d次机会\n",n);
			n--;
		}
	}
	if (i<3)
	{
		printf("密码正确!\n");
	}
	else if (i==3)
	{
		printf ("三次输入错误,系统将在5秒钟之后关闭!\n");
		Sleep(5000);
		exit(0);
	}

	return 0;
}

这里要注意strcmp函数的使用,我在第一次写的时候写成了strcmp(*p,passwd),导致第一次输错密码后程序崩溃;

函数简介(来自百度)
原型:extern int strcmp(const char *s1,const char * s2);
所在头文件:string.h
功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
说明:
当s1<s2时,返回为负数 注意不是-1
当s1==s2时,返回值= 0
当s1>s2时,返回正数 注意不是1

特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。

时间: 2024-08-27 04:10:26

编程成长日记————模拟三次输入密码的相关文章

编程成长日记——有意思的编程题(一)

//日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个.以下为4个嫌疑犯的供词. //A说:不是我. //B说:是C. //C说:是D. //D说:C在胡说 //已知3个人说了真话,1个人说的是假话. //现在请根据这些信息,写一个程序来确定到底谁是凶手. #include<stdio.h> int main() { int i=0; int killer=0; for(i=0;i<4;i++) { killer=65+i; if((killer!='A' )+(ki

编程成长日记————猜数字游戏

模拟猜数字游戏,提示用户每次应输入的数字范围. #include <stdio.h> #include <stdlib.h> //猜数字游戏 int main() { int i=0; int num =0,ret=0,choose=0; int min=1,max=100; flag: srand((unsigned)time(NULL));  ret=rand()%100+1; while(1) { printf("请输入%d~%d之间的数字:\n",min

编程成长日记——重拾C语言

人生总是需要一个契机才会去改变,其实与其说是契机,也不过是自己再给自己一次机会而已. 重拾C语言,我决定再给自己一次机会,不知道多年以后的我再次翻看这篇博客的时候会是怎样的心情,会不会记得当下身为大三狗的我终于想要告别一事无成,一无所获,一败涂地的颓废而不自知的大学生活,我不想说是为了理想而奋斗,更不是为了中华崛起,只是为了我自己,仅此而已. 感谢比特,给我一次改变的机会. 从零开始学起C语言. --------------------------------------煽情分割线-------

编程成长日记——杨辉三角

#include<stdio.h>  //杨辉三角  int main() { int i=0,j=0,n=0,k=0;   int a[100][100]={1,0};   printf("请输入杨辉三角形的行数:");   scanf("%d",&n);    for(i=0;i<=n;i++) {       for(j=0;j<=n;j++)   {         a[i][0]=1;         a[i][i]=1;

编程成长日记——折半查找

编写一个折半查找函数 #include<stdio.h> //编写折半查找函数 int binsearch(int a,int num[],int b ) { int left=0,right=b-1,mid=0; while(left<=right) {    int mid=(left+right)/2;  if (num[mid]<a) { left=left+1; } else if (num[mid]==a) { return mid; } else { right=mi

编程成长日记——打印菱形图案

#include<stdio.h> //打印菱形图案  int main() { int i=0,j=0,n=0; printf("请输入一个数字:\n"); scanf("%d",&n); printf("\n"); for(i=1;i<=n;i++) { for (j=1;j<=n-i;j++) { printf(" "); } for (j=1;j<=(2*i-1);j++) { p

编程成长日记——重拾C语言&lt;二&gt;

关于按位与&和逻辑右移>> 求一个数的二进制的时候,可以采用这种方法,向右移一位,相当于除以二,所以有以下代码: #include<stdio.h> //求一个数的二进制  int main()  {     char arr[32];    int num=0;    int i=0;    printf("请输入一个数字:");    scanf("%d",&num);    for(i=0;i<32;i++)   

网络工程师成长日记076-如何成为网络工程师中的高手

这是我的第076篇原创文章,记录网络工程师行业的点点滴滴,结交IT行业有缘之人 首先,所有最重要的就是你要有坚定不移的信念学习网络工程师 相信你自己完全可以做到这是所有的重中之重,因为如果你没有信心,用什么方法都很难,我写的这些也都成了废话. 根据自己从事网络工程师行业,也从事过网络工程司培训,一共十五年从业的时间,曾经在外企,在世界五百强,在中小型企业都待过,我接触过大量的优秀的工程师,带过大量的,中国移动,中国电信,中国联通的技术员工,也培养过很多的大学生,所以我把培训的最有效的一些方法总结

javascript oop编程 — 实现继承的三种形式

javascript  oop编程  - 实现继承的三种形式[1] (1)模拟类的方式, 我们都知道js是原型继承机制,不存在class和instance分离的这种方式 假设,我们有两个类 function  Animal(){ this.name = "animal"; this.eat = function(){ consle.log("eating"); } } function Cat(){ this.say = function(){ console.lo