c语言程序设计问题求解!(再讲一下解题思路)

感谢!... 感谢! 展开
 我来答
听不清啊
高粉答主

2020-07-02 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include<stdio.h>

int main()

{ int i,j,n,x=0,y=0,k=0,l,a[10][10];

  scanf("%d",&n);

  l=n-1;

  for(i=0; i<n/2; i++)

  { for(j=0; j<l; j++)

      a[x][y++]=++k;

    for(j=0; j<l; j++)

      a[x++][y]=++k;

    for(j=0; j<l; j++)

      a[x][y--]=++k;

    for(j=0; j<l; j++)

      a[x--][y]=++k;

    l-=2;

    x++,y++;

  }

  if(n%2)a[n/2][n/2]=++k;

  for(i=0; i<n; i++)

  { for(j=0; j<n; j++)

      printf("%4d",a[i][j]);

    printf("\n");

  }

  return 0;

}

li953557669
2020-07-02
知道答主
回答量:13
采纳率:0%
帮助的人:3.3万
展开全部
有思路就很好写出来了:四个循环为一个二维数组赋值最后输出即可,循环分别是从左上到右上,从右上到右下,从右下到左下,从左下到左上。
int n,i,j,count=1;
for(n=0;n<=N/2;n++) /* N为输入的矩阵阶次 */
{
for(j=n;j<=N-n-1;j++)
a[n][j]=count++;
for(i=n+1;i<N-n-1;i++)
a[i][N-n-1]=count++;
for(j=N-n-1;j>n;j--)
a[N-n-1][j]=count++;
for(i=N-n-1;i>n;i--)
a[i][n]=count++;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式