C语言高手快来帮帮我~!!!

2024-11-29 22:45:30
推荐回答(2个)
回答1:

打字机程序,在一级下面,只有小写的26个英文字母,系统自动生成10个字符让你输入,输入正确的字符就显示字符,否则显示*代替。在二级下面,包括大小写英文字母和在ASCII表中介于大小写中间的一些字符。
srand()初始化随机开始数,rand()产生一个随机数。

回答2:

srand((unsigned)time(NULL));/*产生随机数*/
int n;
do
{
printf("\n欢迎进入打字程序练习\n");
printf("输入1进入一等级,输入2进入二等级,输入3退出程序\n");
scanf("%d",&n);
switch(n)
{
case 1: func1();
break;
case 2: func2();
break;
}
}while(n!=3);
printf("谢谢使用本软件,你键入了%d个正确字符,%d个错误字符,再见!!!\n",count1,count2);
return 0;
}
void func1()
{
int a;
char str[10],str1[10];
for(a=0;a<=9;a++)
{
str[a]=(rand()+97)%26;/*产生的随机数对26求余再加上97来保证最后的数的范围是正数(rand()产生的数的范围是由-97开始的)*/
/*上面那里我改了*/
printf("%c",str[a]);
}
printf("\n键入相同的字符串\n");
fflush(stdin);
gets(str1);
for(a=0;a<=9;a++)/*统计str[a]与str1[a]相同的字符数目*/
{
if(str[a]==str1[a])
{
printf("%c",str[a]);
count1++;
}
else
{
printf("*");
count2++;
}
}
}
void func2()
{
int a,b;
char str[10],str1[10];
for(a=0;a<=9;a++)
{
b=rand()%2+1;
if(b==1)
{
str[a]=(rand()%26+65);
printf("%c",str[a]);
}
else
{
str[a]=(rand()%26+97);
printf("%c",str[a]);
}
}
printf("\n键入相同的字符串\n");
fflush(stdin);
gets(str1);
for(a=0;a<=9;a++)
{
if(str[a]==str1[a])
{
printf("%c",str[a]);
count1++;
}
else
{
printf("*");
count2++;
}
}
}

后面大概都一样的,rand()函数应该要先加上97再对26求余来产生0~25之间的整数