首页 > 其他分享 >C语言练习------打字游戏

C语言练习------打字游戏

时间:2023-02-01 16:24:32浏览次数:55  
标签:count ch time 打字 50 C语言 printf ------ NULL

1 打字游戏

(1)随机函数

A:srand((unsigned)time(NULL));以当前时间为准,设置随机种子。注意:此函数,在每次开始游戏后调用一次即可。

B:ch=rand(); 注意:rand()函数,每调用一次,产生一个随机数字。

(2)获得健值函数

ch=getch();//无需按下回车,可直接获得键盘上按下的键值

(3)时间函数

start_time=time(NULL);

end_time=time(NULL);

(4)system("cls");//清空屏幕

 

#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<stdlib.h>
#include<corecrt.h>
void help(void)
{
printf("\n******************************************");
printf("\n*输入过程中无法退出! *");
printf("\n*请按所给字母敲击键盘! *");
printf("\n*按任意健开始测试,按下首字母时开始计时 *");
printf("\n*输入出错则以_表示 *");
printf("\n***************************************\n\n");
}
int main()
{
char ch;
char str[51] = " ";//定义数组
int i;
time_t start_time, end_time;
int count = 0;
while (1)
{
system("cls");//清屏
//产生随机字符串。
help();
ch = _getch();
srand(time(NULL));//通过时间的返回值不同,产生的种子就不同
for (i = 0; i < 50; i++)
{
str[i] = rand() % 26 + 'a';
}
str[50] = '\0';
printf("%s\n",str);
count = 0;//因为要玩多次游戏,每次游戏统计前的count都要为0,方便计数

for(i = 0; i < 50;i++)//循环50次
{
ch = _getch();
if (i == 0)
{
start_time = time(NULL);
}

if (ch == str[i])
{
count++;
printf("%c",ch);
}
else
{
printf("_");
}
}
end_time = time(NULL);
printf("\ncount=%d\n", count);
printf("\n正确率:%d%c\n", count * 100 / 50,'%');//50个字符
printf("用时%lld秒\n",(long int)end_time - start_time);
while (1)
{
ch = _getch();
if( ch =='1')//按1在玩一次
{
break;
}
if (ch == 27)///退出
{
return 0;
}
}
}

return 0;
}

 

 

 

标签:count,ch,time,打字,50,C语言,printf,------,NULL
From: https://www.cnblogs.com/Miraitowajwj/p/17083203.html

相关文章

  • 快捷键的使用
    ctrl+C 复制ctrl+V 粘贴ctrl+X 剪切ctrl+A 全选ctrl+Z 撤销ctrl+S 保存alt+F4 关闭窗口右键删除--默认删除shift+delete 永久删除windows+E ......
  • JavaScript之异步编程
    什么是异步异步:Asynchronous,async是与同步synchronous,sync相对的概念。传统单线程编程中,程序的运行是同步的,指程序运行在一个控制流之中运行。而异步的概念就是不保证同......
  • ARC 155 题解
    A目前见过的最阴间的A。寻找规律,发现最后的回文串一定是由若干个周期拼起来的。当周期长度为偶数时,\(S\)和\(S'\)可以各拿半个周期。于是kmp求出border,再判一下,但......
  • XMLHttpRequest Level2的新功能
    可以设置HTTP请求的时限可以使用FormData对象管理表单数据可以上传文件可以获得数据传输的进度信息设置HTTP请求时限  FormData对象管理表单数据......
  • 三层架构
    三层架构:软件设计架构1.页面层(表示层):用户看的页面,用户可以通过界面上的组件和服务器进行交互2.业务逻辑层:处理业务逻辑的3.数据访问层:操作数据存储文件 ......
  • TCGA代码分析流程 - 3.1 生存分析前的数据整理
    生存分析只需要tumor数据,不要normal,将其去掉,新表达矩阵数据命名为exprSet;clinical信息需要进一步整理,成为生存分析需要的格式,新临床信息数据命名为meta。由于不同癌症的临......
  • jar包启动脚本, 以及外置配置文件application.yml
    想使用sh脚本来启动,停止,重启我们的jar服务,顺便还要外置配置文件方便修改示例server.sh如下,启动命令为shserver.shstart或restart或stop,修改其中的这几个参数即可:......
  • geotools和geoserver的关系
    基于geotools,你可以快速地开发出一个java应用。当然,众所周知,java主要是用来开发服务器程序。所以,不难理解,geoserver会选择geotools了。例如,geoserver中的wfs服务和wms服务......
  • 创业员工激励方式大全
    1、固定提成制即按照固定的销售额进行奖金的提成。如每月按照销售额的1%提成,那么如果月销售达到10万,这个月的提成奖金则为1000元。这是一种简单,适用面广的薪酬模式,适合初......
  • 爬虫经验
    示例网站:  1、点页码只有后一部分start=1改变  2、点步长只有第一次url改变  构造方法 :尝试在1后加上2的一部分 ......