目录: 1猜数小游戏 2.恶搞关机小程序 3.“变相”的字符串
一.猜数小游戏(有点东西哈哈,详解)
1基本格式
//(头文件区)
#define _CRT_SECURE_NO_WARNINGS 1 //(引用,scanf)
#include<stdio.h> //头文件用于printf,scanf
#include<stdlib.h> //用于随机数生成srand的头文件
#include<windows.h> //头文件Sleep延迟效果
#include<string。h> //头文件用于比较两个字符串是否相等
#include<time.h> //用于引用时间time(NULL)
//(主函数)
int main()
{srand((unsigned int)time(NULL));//先跳过理解这个,先看4的自定义函数再回来看这个
return 0;
}
补充:srand(number)是系统自动生成随机数,但是随机数会根据number的变化而变化如果number不变化那出现的随机值就会不变化。所以为了避免这种情况而且我们又不用再输入数字,那就让time来充当变化的毕竟时间总是变的 ( srand((unsigned int)time(NULL));这个的位置问题可以放在主函数里面也可以放在自定义函数的l:上面 但是不能放在循环里面,不然会一直变化猜中的可能性,,,额还不如买彩票来的好,也不能放到l:下面不然这个值会一直不变)
time()是时间,里面加入NULL是空的意思,而(unsigned int)是强制转化为unsigned int,未定义整形(因为编译器会出现警告,这样做就没有警告了更安全)
思路:1既然是小游戏那么一定有菜单so:(主函数内)
printf("********************\n");
printf("****** 1.play *****\n");
printf("****** 0.goout *****\n");
printf("********************\n");
2有菜单,所以要有输入选择提示和输入函数so:(主函数内)
int choose=0;
printf("请输入选择:>");
p:
scanf("%d", &choose);
3接下来做出判断:(主函数内)
switch (choose)
{
case 1:
printf("take new game\n");
game();//这个是选择玩游戏运行游戏,但是游戏部分写在这太多不美观(个人感觉)所以放到一个自定义函数去
break;
case 0:
printf("Drop out of a game");
break;//退出
default:
printf("error transmit\nchoose again:>");
goto p;//这个是跳转,跳转到输入前再次选择
}
补充:goto语句(跳转使用,但是要在同一个函数中才可以)
4接下来就是完成小游戏部分(自定义函数部分)(比较闹心点)
void game()
{
l://跳转到这
printf("Guess:>");
char arrt[10] = { 0 };
int c = 0;
int b = rand() % 100 + 1;
//这是在生成随机数再取余100得出的必定是0到99,但我们要的是到1-100所以加一,
并且前面需要先存在随机数这才能使用
,在主函数里面写srand,在头文件里面写#include<stdlib.h>。
while (scanf("%d", &c) != EOF)//condition这是可以输入多次数字判断非数字就会停止。
{
if (c > b)
(printf("There's more input than there really is\n"));
else if (c < b)
(printf("Input is less than it really is\n"));
else
{
(printf("Congratulations,you are the winner\n"));
//以下内容是你猜对后,再让你选择是否继续。
Sleep(1000);
//sleep这是延迟函数单位是毫秒前面要引用#include <windows.h>
(printf("Do you want continue?(yes/no):>"));
scanf("%s", arrt);
if (strcmp(arrt, "yes") == 0)
//strcmp这是判断字符串是否相等,用这个前面头文件要加上#include<string.h>
{
goto l;//选择想玩就跳转到猜数部分再猜数跳转去那
}
else
{
printf("Game over!"); break;//不玩了就结束
}
}
}
}
补充:strcmp(arrt, "yes")是判断两个字符串是否相等如果相等则结果为零,前大>0,0后大<0
二.恶搞关机小程序(整蛊专用)
int main()
{
char arr[30] = { 0 };
system("shutdown -s -t 30");
while (1)
{
printf("请输入'我是猪'我会取消关机否则直接关机");
scanf("%s", arr);
if (strcmp(arr, "我是猪")==0);
{printf("好听话呀,我这就取消关机");
system("shutdown -a");
break;
}
}
return 0;
}
补充:system含义(6条消息) C语言的system()函数详解_June·D的博客-CSDN博客_system函s
-s 代表执行关机指令, -t 30代表执行前一条指令的时间30秒 -a代表的是取消关机
当然还可以这么玩,杀人诛心吗哈哈哈
int main()
{
char arr[30] = { 0 };
system("shutdown -s -t 30");
while (1)
{
printf("请输入'我是猪'我会取消关机否则直接关机");
scanf("%s", arr);
if (strcmp(arr, "我是猪")==0);
{printf("好听话呀,我这就取消关机,等一下");
Sleep(10000);
printf("取消关机关机?宝贝不存在的!哈啊哈哈哈")
break;
}
}
return 0;
}
三.“变相”的字符串
int main()//变化的字符串
{
char arr[] = "hi,friends";
char arr2[] = "**********";
int lift = 0;
int right = strlen(arr)-1;
for (lift = 0; lift < right; lift++, right--)
{
arr2[lift] = arr[lift];
arr2[right] = arr[right];
printf("%s\n", arr2);
Sleep(100);//减速头文件window.h
//若选用system("cls")//则认定为运行一次完后再销毁。
}
return 0;
}
注意两个数组必须一样大才可以。 这个操作可以拓展到打♥型上,(懂得都懂哈哈哈)
源代码在这里(惊喜也是这):xiaoyouxi.cpp · 墨染/学习一下 - 码云 - 开源中国 (gitee.com)