qq_25479591 2015-11-27 08:39 采纳率: 50%
浏览 1660
已采纳

输出一个和螺旋数组如下

输出一个和螺旋数组如下:
1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7
这是我的源码:

#include<stdio.h>

void main(){
    int a[100][100]={0};
    int n,i,j,k = 0;
    scanf("%d",&n);
    for(i = 1;i<=n/2;i++){
        for(j = i;j<=n-i;j++)
            a[j][i] = k++;
        for(j = i;j<=n-i;j++)
            a[n-i+1][j] = k++;
        for(j = n-i+1;j>=i+1;j--)
            a[j][n-i+1]=k++;
        for(j = n+i-1;j>=i+1;j--)
            a[i][j] = k++;
    }

    for(i=1;i<=n;i++){
        for(j = 1 ;j<=n;j++ )
            printf("%d ",a[i][j]);
        printf("\n");
    }
}

图片说明

  • 写回答

1条回答 默认 最新

  • ysuwood 2015-11-27 09:37
    关注
     #include<stdio.h>
    void main(){
        int a[100][100]={0};
        int n,i,j,k = 0;
        scanf("%d",&n);
        for(i = 1;i<=n/2;i++){
            for(j = i;j<=n-i;j++)
                a[j][i] = k++;
            for(j = i;j<=n-i;j++)
                a[n-i+1][j] = k++;
            for(j = n-i+1;j>=i+1;j--)
                a[j][n-i+1]=k++;
            for(j = n-i+1;j>=i+1;j--)//修改为 j=n-i+1
                a[i][j] = k++;
        }
    
        for(i=1;i<=n;i++){
            for(j = 1 ;j<=n;j++ )
                printf("%2d ",a[i][j]); //修改为 %2d
            printf("\n");
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi