|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 ☆﹎尐の潴猪 于 2014-3-11 21:24 编辑
小明玩一个数字游戏,取个n行n列数字矩阵(其中n为不超过100的奇数),数字的填补方法为:在矩阵中心从1开始以逆时针方向绕行,逐圈扩大,直到n行n列填满数字,请输出该n行n列正方形矩阵以及其的对角线数字之和.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int n;
- int array[100][100];
- int i,j,q,k=2,result=0;
- scanf("%d",&n);
- if(n%2==0||n<1) exit(0);
- array[n/2+1][n/2+1]=1;
- for(i=1,q=0;i<=n/2;i++,q++)
- {
- //1
- for(j=0;j<2*i;j++,k++)
- {
- array[n/2+1-j+q][n/2+1+i]=k;
- }
- //2
- for(j=0;j<2*i;j++,k++)
- {
- array[n/2+1-i][n/2+1-j+q]=k;
- }
- //3
- for(j=0;j<2*i;j++,k++)
- {
- array[n/2+1+j-q][n/2+1-i]=k;
- }
- //4
- for(j=0;j<2*i;j++,k++)
- {
- array[n/2+1+i][n/2+1+j-q]=k;
- }
- }
- for(i=1;i<=n;i++)
- {
- for(j=1;j<=n;j++)
- printf("%3d ",array[i][j]);
- printf("\n");
- }
- return 0;
- }
复制代码
|
|