随机产生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
}
程序代码如下:
直接编译,程序输出结果中任意输入三个数字,程序执行结果如下图所示:
扩展资料:C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
getchar函数(字符输入函数)的作用是从终端输入一个字符。用法getchar()
如
char
a;a=getchar();//表示从键盘输入一个字符,并把他赋值给字符变量a;
还可以用scanf
语句输入数据。用法
scanf(格式控制,地址表列)
如int
a
scanf("%d",&a)
scanf("%d%d%d",&a,&b,&c)
"%d%d%d"表示按十进制整数形式输入三个数据。输入数据时,在两个数据之间以一个或多个空格间隔。
格式符
d表示输入十进制整数、
s用来输入字符串
f用来输入小数(实数)
你应该会用了吧
如果不会
欢迎你和我联系
很乐意为你服务
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)