【SDOI2014】数数 段错误

诗岑 2020-03-06 08:14:21
输入:20
3
2
3
14
期望输出:14
实际输出:1
报错:您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int n;
int m;
char s[200][100000];
char N[200][100000];
main(){
scanf("%d",&n);
scanf("%d",&m);
int i;
for(i=0;i<m;i++){
scanf("%s",s[i]);
}
int j;
for(j=1;j<=n;j++){
sprintf(N[j-1],"%d",j);
}
int result=0;
int lucky;
int p,q;//遍历s[i]和N[j]
for(j=0;j<n;j++){
int ln=strlen(N[j]);
lucky=0;
for(i=0;i<m;i++){
int ls=strlen(s[i]);
for(p=0;p<=ln-ls;p++){
int flag=1;
while(q<ls){
if(s[i][q]!=N[j][p+q]){
flag=0;
break;
}
}
if(flag)lucky++;
}
}
if(lucky=0)result++;
}
printf("%d",result);
}
...全文
48 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
你的小电视 2020-03-06
  • 打赏
  • 举报
回复
char s[200][100000]; char N[200][100000]; 这也太大了,用malloc/free,在堆上分配,就没问题了。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧