x=3,y=3,n=1,sum应该=3*3=9,为什么进入循环后就变成1了?
sum=x*y; for(int i=1,m=n;i<=y;i++) for(int j=1,h=rand()%10;j<=x;j++,sum--,h=rand()%10) if(((h==0&&i!=sx&&j!=zy)||(sum=m))&&m>=0) a[1][i][j]='*',m--;
收起
下标越界了,数组下标从0开始而不是从1开始。到n-1结束而不是n越界就会侵犯别的存储单元。
报告相同问题?