C语言实现一个简单的打字程序

Python012

C语言实现一个简单的打字程序,第1张

随机产生3行40列小写字母,然后请用户输入,如果和随机产生的字母一致则输出O错误输出X

知识点:数组,取余,判断,循环,几个库函数,注释详细,适合像我这样的初学者。

#include //经典标准输入输出头文件,不然printf()用不了。

#include //为了使用rand()随机数函数,这个函数取决于srand()函数给它设置的环境。time()当前时间作为参数给srand()

#include //为了使用time()这个函数,能得到当前日历时间

#include //为了用getch()函数来接收一个不回显的按键,本来是getch()的,结果C++说这个函数不安全让我改成_getch()

int main(void)

{

unsigned char listchar[3][40] = { NULL }//无符号字符数组 初始化为null空,一个空所有空

unsigned char getW = NULL//初始化getW无符号变量getW 为null空

srand(time(0))//初始化随机数发生器,time(0)以当前时间作为随机数种子,给srand作为参数,方便使用rand()的时候产生合理的随机数

int i, j = 0

for (i = 0i <3i++) //3行

{

for (j = 0j <40j++) //40列

{

do

{

getW = rand() % 1000//随机产生一个1-3位数的整数给getW

if (getW >= 97 &&getW <= 122) //判断随机数是否在97到122,也是小写字母a~z如果是 就结束do while。

{

break//用于终止do while

}

} while (1)

listchar[i][j] = getW//把随机得到的小写字母赋值给listchar二维数组。

printf("%2c",listchar[i][j])//输出本行的每个列位置的字符%2c的2是占位对齐位置,相当于空格

}

printf(" ")//换两行

}

//unsigned char keyW = ''没用

//keyW = _getch()这个函数好,得到一个字符不回显

i = 0//listchar二维数组的行初始化赋值为0

for(i <3i++)//因为i已经在上面赋值初始化了,所以for里面的第一个表达式可以留空

{

j = 0//listchar二维数组的列初始化为0

do

{

if (_getch() == listchar[i][j])//判断按键的字母是否和二维数组里面的字母一致

{ printf(" O")}//一样的话就输出 O

else

{ printf(" X")}//不一致输出 X

j++//二维数组的列自增1

} while (j <40)//判断二维数组的列是否为最后一个

printf(" ")//二维数组的列结束后,输出一个换行符

}

return 0

}

通过在代码中添加读入数据的函数,来达到输入数据的目的。

常用的读入数据的函数有,scanf,

getchar,

gets等。

scanf是格式化输入,可以用来输入各种类型。

getchar功能为读入一个单个字符。

gets功能为读入一行输入存为字符串,并把换行符替换为字符串结束符。

这几个函数都在stdio.h中,所以使用的时候,需要在文件头添加如下语句:

#include

以scanf为例,做以下程序:

#include

int main()

{

int v

printf("please input a number:")//输出提示语句。

scanf("%d",&v)//用scanf读入一个整型数据,并存到v中,其中%d为格式字符,对应整型。

printf("the number is %d\n", v)//输出得到的数据。

return 0

}