C语言查找连续出现字符,为什么没有全对啊?

1查找字符串(10分)
题目内容:

给定一个字符串,在字符串中找到第一个连续出现至少k次的字符。

输入格式:

第一行包含一个正整数k,表示至少需要连续出现的次数。1 <= k <= 100。

第二行包含需要查找的字符串。字符串长度在1到100之间,且不包含任何空白符。

输出格式:

若存在连续出现至少k次的字符,输出该字符;否则输出NO。

输入样例1:

3

ab3个c3个ab

输出样例1:

c

输入样例2:

3

abccaab

输出样例2:

NO

时间限制:500ms内存限制:32000kb


#include<stdio.h>
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/487507108936146.png "#left")

#include<string.h>
int main()
{int i,n,k,l=0,m=0;
char a[100];
scanf("%d",&n);
fflush(stdin);
gets(a);
k=strlen(a);
for(i=0;i<k;i++)
{
 if(a[i]==a[i+1]) l+=1;
else  l=0;
if(l==n-1) {printf("%c",a[i]);m=1;break;
}
}
if(m==0)
printf("NO");
}

当i=k-1时,a[i+1]=a[k].数组越界。