(C语言做)数组如何输入旋转字母,题目如图

img

数组如何输入旋转字母,题目如图求大佬看看,C语言做,最好有标注详细讲解。
一共有 2626 种不同的花,记为 A, B, ..., ZA,B,...,Z 。小波将花按照一定的顺序摆成 n×n 的正方形形状。

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

img


#include <stdio.h>
#include <stdlib.h>

//螺旋数
void luoxuanshu(int n,int start,int** p,int indexx = 0,int indexy = 0)
{
    int i,j;
    if(n==0)
        return;
    else if(n == 1)
        p[indexx][indexy] = start;
    else
    {
        //上一层
        for(i=0;i<n;i++)
        {
            p[indexx][indexy+i] = start;
            start++;
        }
        //右边
        for (i=1;i<n;i++)
        {
            p[indexx+i][indexy+n-1] = start;
            start++;
        }
        //底边
        for (i=n-2;i>=0;i--)
        {
            p[indexx+n-1][indexx+i] = start;
            start++;
        }
        //左边
        for (i = n-2;i>=1;i--)
        {
            p[indexx+i][indexy] = start;
            start++;
        }
        indexx++;
        indexy++;
        luoxuanshu(n-2,start,p,indexx,indexy);
    }
}


int main()
{
    int n,i,j,x,y;
    int**p;
    scanf("%d %d %d",&n,&x,&y);
    p = (int**)malloc(sizeof(int*)*n);
    for(i=0;i<n;i++)
    {
        p[i] = (int*)malloc(sizeof(int)*n);
        for(j=0;j<n;j++)
            p[i][j] = 0;        
    }

    luoxuanshu(n,1,p);
    if(x>0 && x<n && y>0&& y<n)
        printf("%c",'A'+p[x-1][y-1]-1);
    for(i=0;i<n;i++)
    {
        free(p[i]);
        p[i]=0;
    }
    free(p);
    p=0;
    return 0;
}

(x*n+y)%26+'A'计算即可