1、利用C语言设置密码
设置密码的主要运用到的函数是strcmp,此函数包含的头文件为string.h
函数的运用为,对比两个字符串,如果前面的字符串ASCII值大于后面的ASCII值则大于0,小于既小于0,等于既等于0,利用这个原理写以下程序即可得到一个输入密码的程序
#define _CRT_SECURE_NO_WARNINGS
#include <string.h>
#include <stdio.h>
//登录密码假设密码为123456
int main()
{
char a[10] = { 0 };
int i = 1;
while (i <= 3)
{
printf("请输入六位数密码:");
scanf("%s", a);//数组本来就是地址,无需加"&"
if (strcmp(a,"123456")==0)//strcmp比较字符串比较的是ACSII码值
{
printf("输入正确\n");
break;
}
else
{
i++;
if (i == 4)
break;
printf("输入错误请重新输入密码\n");
}
}C
if (i == 4)
printf("输入次数过多请稍后再试");
else
printf("欢迎");
return 0;
}
2、猜数字1~100小游戏
此程序难点在于如何生成一个1~100的伪随机数,其他都是很轻而易举的操作,这里我们用到的主要是srand((unsigned int)time(NULL))以及rand()这两个函数来生成伪随机数,我们可以看到每次使用rand函数生成的顺序其实都是一样的,并不是真正意义上的随机数,我们只需用srand的函数来改变种子生成的起点,既可以完成真正意义上的伪随机数,但是srand函数如何产生一个随机的起点呢,我们可以借助time函数来完成,将NULL(也就是没有输入)输入到time里面返回的是现在的时间减去1970年1月1日的一个很大的数,返回的类型为time_t类型,其实也就是很大的一个整型,我们只需要用unsigned int 改变其类型就可以将其运用到srand函数来产生一个依时间变换的随机种子,但是此步骤最好加在游戏的循环外侧,不然容易两次的生成随机数挨的非常近。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
void game()
{
int a = ((rand()) % 100) + 1;
int b = 0;
while (a != b)
{
printf("请猜测随机数为多少:");
scanf("%d", &b);
if (b > a)
{
printf("输入数字过大\n");
}
else if (b < a)
{
printf("输入数字过小\n");
}
else
{
printf("恭喜你猜测正确!\n");
}
}
}
int main()
{
srand((unsigned int)time(NULL));
int i=0;
do
{
printf("* 输入1/0是否玩游戏*\n");
printf("*******1.play*******\n");
printf("*******0.Exit*******\n");
printf("********************\n");
scanf("%d", &i);
switch (i)
{
case 1:
game();
break;
case 0:
break;
default:
printf("输入错误\n");
break;
}
} while (i);
return 0;
}