只要你愿意 开始总比放弃好。 Roman.
愿我们都有自己的目标并正在为其不懈努力。
—————————————————————————-猜数字游戏(1-100)
//猜数字小游戏:1-100
//游戏至少进行一次,所以用do...while循环
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<windows.h>
//菜单
void menu()
{
printf("************************************************\n");
printf("****************** 猜数字小游戏 **************\n");
printf("****************** 1.play 0.exit **************\n");
printf("************************************************\n");
}
//游戏
void game()
{
//生成随机数:srand()函数放在主函数中就行
int tmp = rand() % 100 + 1;
//需要头文件<stdlib.h>,返回值类型为int,范围为0-32767,要使得范围在1-100,则处理为:模100+1
//注意生成随机数不在循环中,因为要保持随机数只在每一轮游戏改变
while (1)
{
//猜数字
int guess = 0;
printf("请输入您的猜测:\n");
scanf("%d", &guess);
//判断大小
if (tmp < guess)
{
printf("猜大了\n");
continue;
}
else if (tmp > guess)
{
printf("猜小了\n");
continue;
}
else
{
printf("恭喜您,猜对了!\n");
break;
}
}
//是否想再来一局
printf("是否想要再来一局?\n");
Sleep(1000);
}
int main()
{
srand((unsigned int)time(NULL));//注意返回类型以及time函数不需要存储时写NULL,存储时则指针
int choice = 0;
do
{
menu();
printf("请选择:\n");
scanf("%d", &choice);
switch (choice)
{
case 1:
printf("开始游戏:\n");
game();
break;
case 0:
printf("退出游戏!\n");
break;
default:
printf("选择无效,请重新选择!\n");
Sleep(1000);//延迟打印
break;
}
} while (choice);
return 0;
}
—————————————————————————-关机程序
//关机程序--goto语句 or 循环语句
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char input[20] = { 0 };
char cor[] = "I am a pig";
system("shutdown -s -t 60");//包含在头文件<stdlib.h>中
printf("BB 你的电脑将在60秒内关机\n");
printf("输入“I am a pig”就可以阻止电脑关机喔\n");
//普通循环语句
//while (1)
//{
// printf("BB 请输入:\n");
// gets(input);
// //scanf("%[^\n]]",input); //也可以实现含空格字符串的输入
// if (strcmp(input, cor) == 0)
// {
// system("shutdown -a");
// printf("You are a pig! 恭喜BB解除关机成功!\n");
// break;
// }
// else
// {
// printf("BB 错了喔\n");
// }
//}
//goto语句
again:
printf("BB 请输入:\n");
//gets(input);
scanf("%[^\n]]",input); //也可以实现含空格字符串的输入
if (strcmp(input, cor) == 0)
{
system("shutdown -a");
printf("You are a pig! 恭喜BB解除关机成功!\n");
}
else
{
goto again; //执行的是again 后面的所有语句
}
return 0;
}
—————————————————————————-
注意点
-
生成随机数:
rand(void)返回值是int型,包含在头文件<stdlib.h>中
-
rand函数默认返回范围是:0-32767
-
仅使用rand( )时会发现第一次和第二次生成的随机数一样,则
需要在rand( )函数前调用srand(unsigned int
),但是又会发现,当srand(unsigned int)中int保持不变时,每一次的随机数都一样,故int处需要一个变化的数–时间戳 - 时间戳:现在时间与计算机时间的差值,单位换算为:秒
-
time_t time(time_t* timer) 括号内如果是时间地址则有存储时间戳功能,但是只想返回不想存储则括号内用NULL即可
-
time_t是time函数的返回类型,是long或int64 类型,即:是一个
整型
- time函数头文件是<time.h>
-
所以生成随机数:srand((unsigned int)time(NULL)); rand();
-
但是要注意:当生成的随机数太频繁时,随机数会保持不变,解决方法是
将srand函数置于主函数中
,每一轮游戏调用一次即可 - rand()函数返回的随机数范围是0-32767,要想生成1-100的随机数则%100+1
- 注:任何一个数模100的结果为0-99之间
- 计算机写出的随机数是伪随机数
- 倒计时关机命令:system(“shutdown -s -t 数字”) 单位:秒
- 取消关机:system(“shutdown -a”) 包含在头文件<stdlib.h>
——————————-一个人所有的愤怒来自于对自己无能的痛苦。————————————–
版权声明:本文为weixin_54150521原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。