c语言程序输出总是空白
问题描述:
求问 无论输入几返回的都是空白?
#include<stdio.h>
#include
#define MAX 10
int main(){
int a[MAX][MAX];
memcpy(a,0,sizeof(a));
int x,y,shu,n;
scanf("%d",&n);
x=n-1;y=0;
a[x][y]=shu=1;
while(shu<=n*n){
while(y<=n-2&&a[x][y+1]==0) a[x][++y]=++shu;
while(x>=1&&a[x-1][y]==0) a[--x][y]=++shu;
while(y>=1&&a[x][y-1]==0) a[x][--y]=++shu;
while(x<=n-2&&a[x+1][y]==0) a[++x][y]=++shu;
}
for(int i=0;i<=n-1;i++){
for(int m=0;m<=n-1;m++){
printf("%d",a[m][i]);
} printf("\n");
}
return 0;
}
答
memcpy(a,0,sizeof(a));
改为
memset(a,0,sizeof(a));
答
死循环了,可以把最外层的while(shu<=n*n)去掉
memcpy(a,0,sizeof(a));改成memset(a,0,sizeof(a));