有没有大佬可以帮我看看,这个代码为什么过不去啊,卡了好几天了,只能过3,5的case
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
char a[10000][100] = {0}, ch, b[10000][100] = {0};
long i = 0, j = 0, k = 0, l = 0, sum = 0, zkpm;
int t;
double kpm;
while (strcmp(a[(j == 0) ? 0 : j - 1], "EOF") != 0)//范文读取
{
for (; (ch = getchar()) != '\n';)
{
a[j][i++] = ch;
}
a[j][i] = '\0';
for (int li = 0; li < i; li++) // 每读取一行就进行<的判断,对此行进行操作
{
while (a[j][li] == '<')
{
if (li != 0 && li != i - 1) // li>=1,li<=i-1
{
for (int lii = li - 1; lii <= i - 2; lii++)
{
a[j][lii] = a[j][lii + 2];
}
i = i - 2;
li--;
}
else if (li == 0) // li=0
{
for (int lii = li; lii <= i - 1; lii++)
{
a[j][lii] = a[j][lii + 1];
}
i--;
}
else
{ // li=i-1
a[j][i - 2] = '\0';
i=i-2;
}
}
}
a[j][i]='\0';//每读入一行后,计数清零
j++;
i = 0;
ch='0';
}
while (strcmp(b[(k == 0) ? 0 : k - 1], "EOF") != 0)//输入读取
{
for (; (ch = getchar()) != '\n';)
{
if((ch>='a'&&ch<='z')||ch==' '||ch=='.'||ch=='<')
b[k][l++] = ch;
}
b[k][l] = '\0';
for (int li = 0; li < l; li++) // 每读取一行就进行<的判断,对此行进行操作
{
while (b[k][li] == '<')
{
if (li != 0 && li != l - 1) // li>=1,li<=l-1
{
for (int lii = li - 1; lii <= l - 2; lii++)
{
b[k][lii] = b[k][lii + 2];
}
l = l - 2;
li--;
}
else if (li ==0) // li=0
{
for (int lii = li; lii <= l - 1; lii++)
{
b[k][lii] = b[k][lii + 1];
}
l = l - 1;
}
else
{ // li=l-1
b[k][l - 2] = '\0';
l = l - 2;
}
}
}
b[k][l]='\0';
k++;
l = 0;
}
scanf("%d", &t);
for (int ji = 0, ki = 0; ji < j - 1 && ki < k - 1; ji++, ki++)//正确字数对比
{
for (int i = 0, l = 0; b[ki][l] != '\0' && a[ji][i] != '\0'; i++, l++)
{
if (a[ji][i] == b[ki][l])
sum += 1;
}
i = 0;
l = 0;
}
kpm = 10 * (sum * 60) / t; // 计算时常+四舍五入
if ((int)(kpm) % 10 >= 5)
zkpm = ((int)(kpm) + 10) / 10;
else
zkpm = (int)(kpm) / 10;
printf("%ld", zkpm);//sum时是为了测试
}