问题描述
- 大神,教一下小白,这个runtime error 肿么改
-
#include
#define L 10
void f(int a[],int fan[][L],int m);
void output(int fan[][L],int m);
int main(void)
{
int i,j,m,w=0;
int fan[L][L]={0},a[L];
for(i=0;i<L;i++)
{
scanf("%d",&a[i]);if(a[i]==0) break; w++; } for(i=0;i<w;i++) { m=a[i]; f(a,fan,m); output(fan,m); } return 0;
}
void f(int a[],int fan[][L],int m)
{
int b=0,c,d;
d=m/2;
fan[b][d]=1;
for(c=2;c<=m*m;c++)
{
b--;d++;
{
if((b<0)&&(d==m))
{
b=1;d=m-1;} if(b<0) { b=m-1; } if(d==m) { d=0; } } if(fan[b][d]!=0) {b=b+2;d=d-1;} fan[b][d]=c; }
}
void output(int fan[][L],int m)
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
if(j==m-1) printf("%d",fan[i][j]);
else printf("%d ",fan[i][j]);
fan[i][j]=0;
}
printf("n");
}
}
解决方案
多数是数组越界什么的。断点调试一下。
解决方案二:
这么操作,codeblocks不会调试
解决方案三:
运行错误一般是在走后台数据的时候发生数组越界之类的错误了
时间: 2024-09-19 03:27:49