C语言 运行错误
程序代码:
#include<stdio.h> #include<string.h> int main() { int m,n,t,i,k,l,ok,j; char s[1001],head[20000],tail[20000]; scanf("%d",&m); while(m--) { scanf("%d",&n); i=0; for(j=0;j<n;j++) { scanf("%s",s); t=strlen(s); head[i]=s[0]; tail[i]=s[t-1]; i++; } ok=0; for(k=0;k<n;k++) { for(l=0;l<n;l++) { if(head[k]==tail[l]) { ok++; tail[l]='0'; break; } } if(ok==i-1) break; } if(ok==i-1) { printf("YES\n"); } else printf("NO\n"); } return 0; }
题目是:
先输入一个数m,表示有m组测试数据;接着输入一个n,表示有n根木棒,接着输入n行字符,(英文小写字母表示木棒,不超过1000个字符),木棒能够连接的条件是:两根木棒的首尾字母相同,比如acm+moj,就可以了(注:kjh+ask也是可以的)。要求测试的n<=100000;
我觉得我的程序没什么问题,可是总是运行错误,求解答?
我知道数组宽度开的不够,可是开了100000,就会出现输出超限的问题,拜托,大家帮帮忙