news 2026/6/9 4:04:00

system函数以及猜数字游戏

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
system函数以及猜数字游戏

windows的命令提示符

1.如何打开

a.快捷键:win+R—>输入cmd—>回车
b.开始菜单——>搜索命令提示符

2.命令

  • cls:清屏
  • ping 网址/IP: 测试网络连通
  • shutdown /s /t 60: 60s后关机
  • shutdown /a: 取消关机
  • exit: 关闭cmd
  • dir:查看当前文件夹文件/目录
  • cd 文件夹名:进入指定文件夹
  • cd \ :回到根目录
  • cd . :返回上一级目录
  • md 文件夹名 :新建文件夹
  • rd 文件夹名:删除空文件夹
  • copy 源文件 目标路径:复制文件
  • move 源文件 目标路径:移动文件
  • ren 旧名 新名:重命名

system函数

1.基础说明

头文件:<stdlib.h>
作用:调用操作系统终端/命令行执行系统命令。
函数原型

intsystem(constchar*command);
  • command:字符串,传入系统命令
  • 返回值:调用成功返回执行状态:失败返回-1。

2.常用示例

#include<stdio.h>#include<stdlib.h>#include<windows.h>intmain(){printf("开始清屏\n");Sleep(1000);//暂停1000mssystem("cls");//清屏system("pause");//暂停窗口,按任意位置继续system("dir");//查看当前目录文件return0;}
intmain(){system("calc.exe");//打开计算机system("notepad.exe");//打开记事本return0;}

基于上面的了解你就可以做一个整蛊小代码,看到请自动发给自己朋友。

#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(){charinput[20]={0};system("shutdown -s -t 60");while(1){printf("请注意,你的电脑将以一分钟后关机。输入“我是猪”停止关机\n");scanf("%s",input);if(strcmp(input,"我是猪")==0){system("shutdown -a");break;}}return0;}

这里说一下strcmp函数。它是用来比较两个字符串内容。
返回规则

  • 返回 0 :两个字符串完全相同;
  • 返回正数:str1>str2 (首个不同的字符,str1的ASCLL更大)
  • 返回负数:str1<str2 (首个不同的字符,str1的ASCLL更小)
    比较逻辑:从左到右逐字符比较,遇到不同的字符或\0就停止
intstrcmp(constchar*str1,constchar*str2);

猜数字游戏

在开始之前我们需要了解一下以下函数:rand,srand,time。

intrand(void);

这个函数的头文件是stdlib,h
它的作用就是返回一个随机数,这个随机数在0到RAND-MAX之间。RAND-MAX这个数的大小是依赖编译器规定的,大部分是32767。但是这个函数的随机不是绝对的随机,它是通过“种子”为基准生成的。rand“种子”初始默认为1。要得到真正的随机我们要改变种子的值来实现,这就是我们接下来要说的srand函数了

voidsrand(unsignedintseed);

头函数stdlib.h,传入的参数就是你要改变的“种子”。程序在调用rand之前先调用srand改变“种子”
。那这时候就有老铁要问了,我要怎么才能搞到时刻在变的“种子”呢?好,你诚心诚意的问了,那我们就要说最后一个函数time了。

time_ttime(time_t*timer);

头函数time.h,time_t本质就是一种无符号整数。这个函数既可以直接返回值又可以通过传指针的方式存入指针所指的变量中

#include<time.h>#include<stdio.h>intmain(){time_ta,b;a=time(&b);printf("a = %zu\n",a);printf("b = %zu\n",b);return0;}


你可能会好奇这个返回值到底是怎么来的。其实这个返回的值是1970.1.1 0时0分0秒到现在的时间差,单位是秒。


通过上面函数的描述以及标题你或许已经知道我为何提及这几个函数了。那接下来直接步入正题。猜数字游戏启动!!!
首先是游戏框架,如何做到与用户做到互动。我相信这肯定难不倒你。直接开始。

intmain(){intchoice=1;while(choice){printf("---------------------------------------\n");printf("------------- 猜数字游戏 --------------\n");printf("------------- 1.play ------------------\n");printf("------------- 1.exit ------------------\n");printf("---------------------------------------\n");printf("请选择:\n");scanf("%d",&choice);switch(choice){case1://game();break;case0:break;default:printf("输入错误,请重新输入:\n");}}return0;}

这样就是大体的框架了,现在只需要写出函数game即可。也不算难,主要就是生成随机数就差不多完事了。由于要生成随机数,那么就要在主函数中加上srand改变“种子”

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>voidgame(){//先生成一个随机数,为了游戏方便把随机数范围规定在0到100。inta,b;a=rand()%101;while(1){printf("请输入一个数");scanf("%d",&b);system("cls");//为了界面保持干净,清屏处理一下if(a>b)printf("猜小了\n");elseif(a<b)printf("猜大了\n");else{printf("恭喜你,猜对了\n");Sleep(2000);//防止清屏使通关提示一闪而过break;}}}intmain(){srand((unsignedint)time(NULL));intchoice=1;while(choice){printf("---------------------------------------\n");printf("------------- 猜数字游戏 --------------\n");printf("------------- 1.play ------------------\n");printf("------------- 0.exit ------------------\n");printf("---------------------------------------\n");printf("请选择:\n");scanf("%d",&choice);switch(choice){case1:game();break;case0:break;default:printf("输入错误,请重新输入:\n");}system("cls");//避免屏幕上都是游戏选择,清屏处理}return0;}

写完这些再看这代码也太容易了吧,确实这个代码不难,但对于初学者的我们其实还有些难度。自己写跟看别人写好的代码完全是两个不同的东西。你看可能感觉理所当然,但是自己实操就漏洞百出了,什么错误都会以你不可想象的方式出现。所以千万不要眼高手低,一定要自己动手。当然我这个代码还有很多能改进的,比如加上猜数字次数限制,记录开始到结束时间等等。希望你能动手加上,并分享你的代码,我们共用进步。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 3:53:32

从安装到跑通第一个Demo:我的WebLogic 12c/14c避坑实录(Windows环境)

从安装到跑通第一个Demo&#xff1a;我的WebLogic 12c/14c避坑实录&#xff08;Windows环境&#xff09;第一次在企业级项目中接触WebLogic时&#xff0c;那种既兴奋又忐忑的心情至今记忆犹新。作为Oracle旗下的重量级Java EE应用服务器&#xff0c;WebLogic在金融、电信等行业…

作者头像 李华
网站建设 2026/6/9 3:53:25

C++学习笔记系列1-9

switch语句概述&#xff1a;switch语句和if语句都是起到逻辑分支作用的&#xff0c;让我们的代码更加灵活多变&#xff0c;应对不同需求的实现。学习switch语句&#xff0c;重点掌握&#xff1a;条件、break、贯穿这3个重点知识点。在深入学习后&#xff0c;switch会和枚举&…

作者头像 李华
网站建设 2026/6/9 3:51:40

C语言求最小公倍数:除了暴力循环,你还可以试试这几种更高效的算法(附代码对比)

C语言最小公倍数算法&#xff1a;从暴力破解到数学优化的性能跃迁在编程面试和算法竞赛中&#xff0c;求最小公倍数(LCM)这类基础题目常常成为区分平庸与优秀的分水岭。许多初学者满足于暴力循环的实现&#xff0c;却不知其中隐藏着巨大的性能陷阱。本文将带你深入剖析三种主流…

作者头像 李华
网站建设 2026/6/9 3:48:39

LLM解码策略:嵌入空间拥挤现象与几何感知优化

1. 解码几何&#xff1a;理解嵌入空间拥挤现象的本质在大型语言模型&#xff08;LLM&#xff09;的复杂推理任务中&#xff0c;解码策略的选择往往决定了生成结果的质量。传统方法如温度采样&#xff08;Temperature Scaling&#xff09;和截断采样&#xff08;Top-p/Top-k&…

作者头像 李华