N*N 的方阵
来源:互联网 发布:触摸屏展示软件 编辑:程序博客网 时间:2024/04/27 17:11
打印一个 N*N 的方阵,N为每边 N=15 打印出下面图形
字符的个数(3<N<20), 要求最 TTTTTTTTTTTTTTT
外一层为"T", 第二层为"J", 从第三层 TJJJJJJJJJJJJJT
起每层依次打印数字 1,2,3,... TJ11111111111JT
(右图以N为15为例) TJ12222222221JT
TJ12333333321JT
TJ12344444321JT
TJ12345554321JT
TJ12345654321JT
TJ12345554321JT
TJ12344444321JT
TJ12333333321JT
TJ12222222221JT
TJ11111111111JT
TJJJJJJJJJJJJJT
TTTTTTTTTTTTTTT
思路:从外层到内层,先将T和J打印,在打印数字。
利用数组将处在同一层的元素赋同值
缺点:四个角重复赋值
#include<stdio.h>
void Fun(int );
int main(void)
{
int n;
scanf("%d",&n);
Fun(n);
return 0;
}
void Fun(int N)
{
char A[18][18];
char (*p)[18];
p =A;
int x=2,y=N-3,c=49;
for(int i=0;i<N;i++)
{
A[0][i] ='T';
A[i][0] ='T';
A[N-1][i] ='T';
A[i][N-1]='T';
}
for(int j=1;j<N-1;j++)
{
A[1][j]='J';
A[j][1]='J';
A[N-2][j]='J';
A[j][N-2]='J';
}
while(x<=y)
{
for(int k=x;k<y+1;k++)
{
A[x][k]=c;
A[k][x]=c;
A[y][k]=c;
A[k][y]=c;
}
x++;
y--;
c++;
}
for(int a=0;a<N;a++)
for(int b=0;b<N;b++)
{
printf("%c",*(*(p+a)+b));
if(b==N-1)
printf("/n");
}
printf("/n");
}
- N*N 的方阵
- uvalive4840(n*n方阵的最小花费)
- 构造N*N阶的方阵
- N*N方阵
- N*N螺旋方阵
- 随机排列n*n方阵
- 输出n*n阶方阵
- N阶的螺旋方阵。。。。编程
- 【每周一题】2、打印N*N阶的方阵
- n*n螺旋方阵的C语言实现
- 输出按逆时针方向旋进的n*n螺旋方阵
- N阶幻方阵
- 生成一个n*n的方阵,然后输出此方阵对角线上元素之和
- n阶方阵对角线之和
- 打印一个N*N的方阵,N为每边字符的个数( 3〈N〈20 )
- 打印一个N*N的方阵,N为每边字符的个数( 3〈N〈20 )
- 输入N阶方阵求其各行各列的和
- 利用函数实现n阶方阵的行列置换
- 翻硬币
- 玩火柴
- AZ字符串
- 距阵的算法
- 拉丁方阵
- N*N 的方阵
- static的作用
- const 的作用
- 白话设计模式——Abstract Factory
- 数据到客户端
- c# 返回上几页(history.go(-n))
- 排序问题的简单实现!
- COM本质 之一
- javaScript常规用法A