杭电2034题 提交的时候出现的Runtime Error (ACCESS_VIOLATION) 各位大佬给小弟看看,谢谢。。

无人交流的问题 2018-03-01 09:35:13
#include <stdio.h>
int main()
{
int m,n;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n>0&&n<=100&&m>0&&m<=100)
{
int i,j,a[100],b[100],count=0;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<m;i++)
scanf("%d",&b[i]);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(a[i]==b[j])
{count++;a[i]=2000;j=m;}
else
continue;
i=0;
if(count==n)
printf("NULL\n");
else
while(count)
{

if(a[i]!=2000&&count<n-1)
{printf("%d ",a[i]);count++;}
else
if(a[i]!=2000&&count==n-1)
{printf("%d\n",a[i]);count++;}
i++;
}
}
else
if(m==0&&n==0)
break;
else
continue;

}
return 0;

}
...全文
515 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2018-03-02
  • 打赏
  • 举报
回复
在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可避开因局部数组大小超过默认堆栈大小1MB造成程序不能正常运行的问题。
mxway 2018-03-02
  • 打赏
  • 举报
回复
  int i,j,min,a[100],b[100],c[100],count=0;
数组开大些,a,b,c都改成a[110],b[110],c[110]试下
  • 打赏
  • 举报
回复
#include <stdio.h> int main() { int m,n; while(scanf("%d%d",&n,&m)!=EOF) { if(n>0&&n<=100&&m>0&&m<=100) { int i,j,min,a[100],b[100],c[100],count=0; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<m;i++) scanf("%d",&b[i]); for(i=0;i<n;i++) for(j=0;j<m;j++) if(a[i]==b[j]) {count++;a[i]=2000;j=m;} else continue; i=0; if(count==n) printf("NULL\n"); else { for(i=0,j=0;i<n;i++) if(a[i]!=2000) { c[j]=a[i]; j++; } for(i=0;i<n-count;i++) for(j=i+1;j<n-count;j++) if(c[i]>c[j]) { min=c[j]; c[j]=c[i]; c[i]=min; } for(i=0;i<n-count;i++) if(i!=n-count-1) printf("%d ",c[i]); else if(i==n-count-1) printf("%d\n",c[i]); } } else if(m==0&&n==0) break; else continue; } return 0; } 这是改过的代码 ,帮忙看下这个就行,提交还是错误,尴尬癌都出来了!!!

69,368

社区成员

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

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