给这段代码添加中文注释:void main(void) { int i,num,flag,m=0,n,over=1; char str1[100]; char str2[100]; char c; float p; system("color F4"); while(over) { num=0; m=0; system("cls"); printf("\n"); printf(" **************************************** \n"); printf(" 欢迎使用打字程序 \n"); printf(" **************************************** \n"); srand(time(NULL)); num=1+rand()%10; for(n=0;n<num;n++) { flag=rand()%3; if(flag==0) str1[n]='A'+rand()%26; else if(flag==1) str1[n]='a'+rand()%26; else str1[n]='0'+rand()%9; } str1[n]='\0'; printf("\n\n\t\t ***************************************\n"); printf("随机字符串个数:\t\t%d\n",num); printf("随机产生的字符串:\t%s\n",str1); printf("\t\t ***************************************\n\n"); printf("请输入上面的字符串:"); scanf("%s",str2); getchar(); for(i=0;str2[i]!='\0'&&str1[i]!='\0';i++) { if(str1[i]==str2[i]) m++; } p=(float)m/num; printf("\n\n\n ************************************* \n\n"); printf(" 正确率为:%.1f%%\n",p*100); printf(" 正确个数为:%d\n",m); printf("\n ************************************* \n\n\n"); printf(" \n"); printf(" 是否还需继续练习?(任意键继续/F键退出)\n"); scanf("%c",&c); getchar(); if(c=='F'||c=='f') over=0; } }
时间: 2023-07-18 08:50:00 浏览: 80
cpp代码-大作业第五题: 定义一个date类如下: class Date { public: void SetDate(int y,int m,int d); void IsLeapYear(); private: int year; int month; int day; }; 要求: (1)编写SetDate(int y,int m,int d)函数,实现对象中数据成员的设置; (2)编写IsLeapYear()判断该年是否是闰年。
// 定义主函数
void main(void) {
int i,num,flag,m=0,n,over=1; // 声明整型变量i、num、flag、m、n、over并赋初值1
char str1[100]; // 声明字符型数组str1,长度为100
char str2[100]; // 声明字符型数组str2,长度为100
char c; // 声明字符型变量c
float p; // 声明浮点型变量p
system("color F4"); // 设置系统窗口颜色为淡红色
while(over) // 当over为真时,执行循环体
{
num=0; // 将num的值赋为0
m=0; // 将m的值赋为0
system("cls"); // 清屏
printf("\n");
printf(" **************************************** \n"); // 打印欢迎使用的提示信息
printf(" 欢迎使用打字程序 \n");
printf(" **************************************** \n");
srand(time(NULL)); // 设置随机数种子为当前时间
num=1+rand()%10; // 生成一个1~10的随机整数并赋值给num
for(n=0;n<num;n++) // 生成num个随机字符
{
flag=rand()%3; // 生成0~2的随机整数并赋值给flag
if(flag==0) // 如果flag为0,则生成一个大写字母
str1[n]='A'+rand()%26;
else if(flag==1) // 如果flag为1,则生成一个小写字母
str1[n]='a'+rand()%26;
else str1[n]='0'+rand()%9; // 否则生成一个数字
}
str1[n]='\0'; // 在生成的随机字符串末尾添加'\0',表示字符串结束
printf("\n\n\t\t ***************************************\n");
printf("随机字符串个数:\t\t%d\n",num); // 打印随机字符串个数
printf("随机产生的字符串:\t%s\n",str1); // 打印生成的随机字符串
printf("\t\t ***************************************\n\n");
printf("请输入上面的字符串:"); // 提示用户输入相同的字符串
scanf("%s",str2); // 读入用户输入的字符串
getchar(); // 读取缓冲区中的回车键
for(i=0;str2[i]!='\0'&&str1[i]!='\0';i++) // 计算用户输入的字符串与随机字符串相同的字符数
{
if(str1[i]==str2[i])
m++; // 如果相同,则将m加1
}
p=(float)m/num; // 计算正确率
printf("\n\n\n ************************************* \n\n");
printf(" 正确率为:%.1f%%\n",p*100); // 打印正确率
printf(" 正确个数为:%d\n",m);
printf("\n ************************************* \n\n\n");
printf(" \n");
printf(" 是否还需继续练习?(任意键继续/F键退出)\n"); // 提示用户是否继续练习
scanf("%c",&c); // 读入用户输入的字符
getchar(); // 读取缓冲区中的回车键
if(c=='F'||c=='f') // 如果用户输入的字符为F或f,则退出循环
over=0;
}
}
阅读全文