yellowcat2 2021-07-06 17:49 采纳率: 100%
浏览 70
已采纳

C语言程序设计题,求

img

  • 写回答

4条回答 默认 最新

  • qfl_sdu 2021-07-06 18:58
    关注

    代码如下,如有帮助,请采纳一下,谢谢。

    #include <stdio.h>
    #include <stdlib.h>
    
    void fun(int **a, int sx,int sy,int n,int start)
    {
        int i,j;
        for (i=0;i<n;i++)
        {
            for (j=0;j<n;j++)
            {
                if(i==j)
                    a[sx+i][sy+j] = start + i;
                else if(i==n-1)
                    a[sx+i][sy+j] = start + 3*n-i-3 -j;
                else if (j==0)
                    a[sx+i][sy+j] = start + 3*n-i-3;
            }
        }
        if(n<=3)
            return;
        else
        {
            sx +=2;
            sy +=1;
            fun(a,sx,sy,n-3,3*n-2);
        }
        
    }
    
    int main()
    {
        int **a = 0;
        int n,i,j;
        printf("n=");
        scanf("%d",&n);
        a = (int**)malloc(n*sizeof(int*));
        for (i=0;i<n;i++)
        {
            a[i] = (int*)malloc(n*sizeof(int));
        }
        for (i=0;i<n;i++)
        {
            for (j=0;j<n;j++)
            {
                a[i][j] = 0;
            }
        }
        fun(a,0,0,n,1);
    
        for (i=0;i<n;i++)
        {
            for (j=0;j<n;j++)
            {
                if(j<=i)
                    printf("%4d",a[i][j]);
            }
            printf("\n");
        }
    
    
        for (i=0;i<n;i++)
        {
            free(a[i]);
        }
        free(a);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?