C语言段错误怎么弄,输出的结果都是对的,在PAT里面提交就说有段错误,哪位大神帮我看看
#include<stdio.h>intmain(){intn,i,a[20],x,b[10],temp,sum,n1,x1;while(scanf("%d",&n)!=...
#include <stdio.h>int main(){ int n,i,a[20],x,b[10],temp,sum,n1,x1; while(scanf("%d",&n)!=EOF) { temp=n; int flag=0; while(n--) { scanf("%d",&x); a[n]=x; } scanf("%d",&n1); while(n1--) { sum=0; scanf("%d",&x1); b[n1]=x1; for(i=0;i<=temp;i++) if(b[n1]==a[i]) sum++; if(flag==0) printf("%d",sum); else printf(" %d",sum); flag++; } printf("\n"); } return 0;}
展开
2016-10-06
展开全部
将
while(scanf("%d",&n)!=EOF)
改成
while(scanf("%d",&n)==1)
应该就好了。
主要原因是,scanf("%d",&n)的不正确的输入可能使n是特别的值,超出正常范围,从而导致后面a[n]中下标超出原来的范围
追问
您好,我试了下您说的方法,但是依旧是段错误
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询