#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define MAX 100
typedef unsigned char String[MAX + 1];
int StrLength(String n)
{
int i;
for(i = 1;n[i] != '\0';i ++);
return i - 1;
}
//查找
int ChaZhao(char s[],String n,int temp,int k)
{
int i,j;
i = temp;
j = 1;
while(i <= k && j <= n[0])
{
if(s[i] == n[j])
{
i ++;
j ++;
}
else
{
i = i - j + 2;
j = 1;
}
}
if(j > n[0])
{
return i - n[0];
}
else
{
return 0;
}
}
int main()
{
String num;
char sum[MAX + 1] = "abcdefghijklmnopqrstuvwxyz";
int j,i,w,score = 0,t;
printf("《《字母测试》》\n");
srand(time(NULL));
printf("随机产生5个位置,请输入这五个位值上的字母,回答对一个20分\n");
for(w = 1;w <= 5;w ++)
{
t = rand() % 26 + 1;
printf("请输入第%d个字母:",t);
scanf("%s",&num[1]);
num[0] = StrLength(num);
j = strlen(sum);
i = ChaZhao(sum,num,0,j);
if(i == t - 1)
{
printf("回答正确\n");
score += 20;
}
else
{
printf("回答错误\n");
printf("正确答案:");
printf("%c\n",sum[t - 1]);
}
}
printf("总分:%d分\n",score);
printf("老师寄语:");
switch(score / 10)
{
case 10:
printf("虽然你全对,但是,下次换个同桌就可能不是啦\n");
break;
case 8:
printf("革命尚未成功同志仍需努力\n");
break;
case 6:
printf("你可要小心点啊,下次你可能就走不掉啦\n");
break;
default:
printf("有种放学别走,抄1000遍字母\n");
}
/*printf("请输入第16个字母:");
scanf("%s",&num[1]);
num[0] = StrLength(num);
j = strlen(sum);
i = ChaZhao(sum,num,0,j);
if(i == 0)
{
printf("正确答案:");
printf("%c",sum[15]);
printf("回答错误\n");
printf("放学留下来,抄1000遍");
}
else
{
printf("回答正确\n");
}*/
}
数据结构:串的BF模式匹配算法的实际应用
最新推荐文章于 2023-09-16 06:00:00 发布