李成笔记网

专注域名、站长SEO知识分享与实战技巧

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

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

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


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

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

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

#include <conio.h> //为了用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 = 0; i < 3; i++) //3行

{

for (j = 0; j < 40; j++) //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("\n\n"); //换两行

}


//unsigned char keyW = '\0'; 没用

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

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

for(;i < 3;i++)//因为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("\n");//二维数组的列结束后,输出一个换行符

}

return 0;

}

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言