求这串C语言源代码的详细注释! 急急~在线等!

#defineN7main(){staticinta[N+1][N+1];intm,k,i,j;m=N*N;i=1;j=N/2+1;for(k=1;k<=m;k++){a... #define N 7
main()
{ static int a[N+1][N+1];
int m,k,i,j;
m=N*N;
i=1;j=N/2+1;
for (k=1;k<=m;k++)
{ a[i][j]=k;
i=i-1;j=j+1;
if (i==0&&j==N+1) { i=i+2;j=j-1; }
else if (i==0) i=N;
else if (j==N+1) j=1;
else if (a[i][j]!=0) { i=i+2;j=j-1; }
}
for (i=1;i<=N;i++)
{ for (j=1;j<=N;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}

速度快的话!可以加分
展开
 我来答
百度网友1214fdcbb
2010-11-04 · TA获得超过1240个赞
知道小有建树答主
回答量:316
采纳率:0%
帮助的人:377万
展开全部
#define N 7 全局变量
main() 主函数
{ static int a[N+1][N+1]; 定义二维数组
int m,k,i,j; 4个int变量
m=N*N; 给m赋值
i=1;j=N/2+1; 给i、j赋值
for (k=1;k<=m;k++) for循环
{ a[i][j]=k; 给二维数组a[][]的第a[i][j]项赋值
i=i-1;j=j+1; 改变j、j的值
if (i==0&&j==N+1) { i=i+2;j=j-1; }如果i到0并且j超过数组长度就给i+2,给j-1;
else if (i==0) i=N;不然如果i等于0就让i等于全局变量N
else if (j==N+1) j=1;不然如果j等于N+1的话就让j等于1
else if (a[i][j]!=0) { i=i+2;j=j-1; }不然如果a[i][j]不等于0的话就执行i=i+2;j=j-1;
}循环结束
for (i=1;i<=N;i++)循环开始
{ for (j=1;j<=N;j++)循环开始
printf("%4d",a[i][j]);输出a[i][j]
printf("\n");输出换行符
}循环结束
}主程序结束
这就是一个给数组循环赋值然后输出的程序,具体规律你可以根据输出结果看出来
匿名用户
2010-11-04
展开全部
神啊~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友303b813
2010-11-04 · TA获得超过1749个赞
知道小有建树答主
回答量:438
采纳率:0%
帮助的人:532万
展开全部
分析如2楼 结果就是:
30 39 48 1 10 19 28
38 47 7 9 18 27 29
46 6 8 17 26 35 37
5 14 16 25 34 36 45
13 15 24 33 42 44 4
21 23 32 41 43 3 12
22 31 40 49 2 11 20
就是斜着加1的矩阵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式