1,猜数字游戏:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
printf(" ##### \n");
printf(" ###### ###### \n");
printf(" ####### 1.PLAY ####### \n");
printf(" ####### 2.EXIT ####### \n");
printf(" ###### ###### \n");
printf(" ##### \n");
}
//生成随机数
void game()
{
int ret;
ret = rand() % 100 +1;// 缩小范围1~100
int input = 0;
do
{
printf("输入你猜的数字:");
scanf("%d", &input);
if (input == ret)
{
printf("恭喜你!猜对了!\n");
break;
}
else if (input > ret)
printf("猜大了\n");
else
printf("猜小了\n");
} while (1);
}
//主体
int main()
{
int input = 0;
srand((unsigned)time(NULL));//-根据系统时间来生成一个随机数
do
{
menu();
printf("选择:");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 2:
break;
default:
printf("选择错误!请重新输入!\n");
break;
}
} while (input);
system("pause");
return 0;
}
关于生成随机数的(ret = rand() % 100 +1;// 缩小范围1~100)和(srand((unsigned)time(NULL));)
*rand函数不是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。
*rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的。
*rand()会返回一个范围在0到RAND_MAX(32767)之间的伪随机数(整数)。
*在调用rand()函数之前,可以使用srand()函数设置随机数种子,如果没有设置随机数种子,rand()函数在调用时,自动设计随机数种子为1。随机种子相同,每次产生的随机数也会相同。
*rand()用来设置rand()产生随机数时的随机数种子。参数seed是整数,通常可以利用time(0)或geypid(0)的返回值作为seed。
____________________________________________________________________________________________________
2. 从标准输入读取代码,并验证所有花括号成对出现
#include <stdio,h>
#include <stdlib.h>
#include <math.h>
int main()
{
int ch=0; //定义一个变量来接收文件读取的信息
int count = 0; //定义一个计数器来验证括号匹配情况
while ((ch = getchar()) != EOF) //当文件没有结束时用ch接收输入的信息 注:EOF为文件结束标志 当在编译器输入框数完 的内容时 需要按Ctrl+z来结束本次输入
{
if (ch == '{')
{
count++; //若出现‘{ ’计数器++
}
if (count == 0 && ch == '}')//如果右括号先出现,就一定错误
{
printf("错误");
return 0;
}
if (ch == '}'&&count != 0)
{
count--; //若出现‘}’计数器--
}
}
if (count == 0)
printf("匹配!");
else
printf("不匹配!");
system("pause");
return 0;
}
______________________________________________________________________________________________________________________________