教我做道编程题.

来源:百度知道 编辑:UC知道 时间:2024/05/11 14:01:57
打印一个 N*N 的方阵,N为每边 字符的个数(3<N<20), 要求最 外一层为"T", 第二层为"J", 从第三层 起每层依次打印数字 1,2,3,... (右图以N为 15 为例)
N=15 打印出下面图形
TTTTTTTTTTTTTTT
TJJJJJJJJJJJJJJJJJT
TJ11111111111JT
TJ12222222221JT
TJ12333333321JT
TJ12344444321JT
TJ12345554321JT
TJ12345654321JT
TJ12345554321JT
TJ12344444321JT
TJ12333333321JT
TJ12222222221JT
TJ11111111111JT
TJJJJJJJJJJJJJJJJJT
TTTTTTTTTTTTTTT
汗哦,,,,,偶还没学指针.......

呵呵.偶今天刚作这题:
#include "stdio.h"
main()
{
char *str="TL1234567890ABCDEF",*p;
int i,j,k,v,n;
p=str;
printf("input n:\n");
scanf("%d",&n);
for(i=1,v=1;i>0;v++){
if(v>1)printf("\n");
for(j=1,k=1;j>0;k++){
if(i<j)
printf("%c",*(p+i-1));
else
printf("%c",*(p+j-1));
if(2*k<n)j++;
if(2*k>n) j--;
}
if(2*v<n)i++;
if(2*v>n) i--;
}
getch();
}
晕菜....
#include <stdio.h>
#define N 15
void main()
{
static char a[N][N], i, j,t, num;
int start = 0, end = N -1;
char str[] = "TJ12345678", ch;
for( t =0; t <= N/2; t++, start++, end--, i++, j++)
{
ch = *(str + t);