输出旋转方形数字图形


static void Main(string[] args)
        {

            int[,] x = new int[25, 25];
            int iCol, iRow, n = 2;
            int v = 1;
            int i0, i1, j0, j;
            i0 = 0; i1 = n - 1;
            for (j = 0; j <= n / 2; j++)
            {
                j0 = j;
                for (iCol = i0; iCol <= i1; iCol++) { x[j0, iCol] = v; v++; };         //输出行
                for (iRow = j0 + 1; iRow <= i1; iRow++) { x[iRow, i1] = v; v++; };     //输出列
                for (iCol = i1 - 1; iCol >= i0; iCol--) { x[i1, iCol] = v; v++; };      //输出行
                for (iRow = i1 - 1; iRow >= i0 + 1; iRow--) { x[iRow, i0] = v; v++; };  //输出列
                i0 = i0 + 1; i1 = i1 - 1;
            }
            int sum = 0;
            for (iCol = 0; iCol < n; iCol++)
            {
                for (iRow = 0; iRow < n; iRow++)
                {
                    Console.Write(x[iCol,iRow] + " ");
                    if(iCol+iRow==n-1)sum += x[iRow, iCol];
                }
                
                Console.WriteLine();
            }
            Console.WriteLine(sum);

        }

C语言版:

#include <stdio.h>

int main()
{
	int N;
	while(scanf("%d",&N)!=EOF)
	{
		int a[25][25];
		int iRow,iColumn,sum=0;
		int i=0,j=N-1,k,v=1;
		for(k=0;k<=N/2;k++)
		{
			int r=k;
			for(iColumn=i;iColumn<=j;iColumn++)
			{
				a[r][iColumn]=v;
				v++;
			}
			for(iRow=i+1;iRow<=j;iRow++)
			{
				a[iRow][j]=v;
				v++;
			}
			for(iColumn=j-1;iColumn>=i;iColumn--)
			{
				a[j][iColumn]=v;
				v++;
			}
			for(iRow=j-1;iRow>=i+1;iRow--)
			{
				a[iRow][i]=v;
				v++;
			}
			
			i++;
			j=j-1;
		}
		for(i=0;i<N;i++)
		{
			for(j=0;j<N;j++)
			{
				printf("%d ",a[i][j]);
				//if(i+j==N-1)sum+=a[i][j];         //打印对角线和
			}
			printf("
");
		}
	printf("%d
",sum);
	}

	return 0;
}

JAVA语言:

       public static void main(String args[])
	{
		String strIn="";
		System.out.println("请输入矩阵的行列数:");
		InputStreamReader input=new InputStreamReader(System.in);
		BufferedReader buff=new BufferedReader(input);
		try
		{
			strIn=buff.readLine();
		}
		catch (IOException ex)
		{
			System.out.println(ex.toString());
		}

		int istr=Integer.parseInt(strIn);
		int n=istr;
		//System.out.println("这是行列数为:"+ n +"螺旋矩阵”);
		int iInit=1;
		int array[][]=new int[n][n];
		int iCondition;
		if(n%2>0)
		{
			iCondition=n/2+1;
		}
		else
		{
			iCondition=n/2;
		}
		for(int i=0;i<iCondition;i++)
		{
			for(int j=i;j<n-i;j++)
			{
				array[i][j]=iInit;
				iInit++;
			}
			for(int k=i+1;k<n-i;k++)
			{
				array[k][n-i-1]=iInit;
				iInit++;
			}
			for(int l=n-i-2;l>=i;l--)
			{
				array[n-i-1][l]=iInit;
				iInit++;
			}
			for(int t=n-i-2;t>i;t--)
			{
				array[t][i]=iInit;
				iInit++;
			}

			for(int m=0;m<n;m++)
			{
				for(int j=0;j<n;j++)
				{
					System.out.print(array[m][j]+"   ");
				}
				System.out.println();
			}
		}
	}



Console.Write(x[iCol,iRow] + " ");改变输出的行列Console.Write(x[iRow,iCol] + " ");可得出另外一种形式

原文地址:https://www.cnblogs.com/dengshiwei/p/4258717.html