| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2146 人关注过本帖
标题:打印一个 N*N 的方阵,N为每边字符的个数,要求最外一层为T,第二层为J,从 ...
只看楼主 加入收藏
懒虫827
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2012-4-3
结帖率:0
收藏
已结贴  问题点数:10 回复次数:8 
打印一个 N*N 的方阵,N为每边字符的个数,要求最外一层为T,第二层为J,从第三层其每层打印数字1,2,3.。。。。 N=15 打印出下
#include"stdio.h"
#include"stdlib.h"

void main()
{
char a[30][30];
int i,j,k,N;
printf("please input N: ");
scanf("%d",&N);
for(i=0;i<N;a[0][i]='T',a[N-1][i]='T',a[i][0]='T',a[i][N-1]='T',i++);
for(i=1;i<N-1;a[1][i]='J',a[N-2][i]='J',a[i][1]='J',a[i][N-2]='J',i++);
for(j=49,i=2;i<N/2+1;i++,j++)
   for(k=i;k<N-i;a[i][k]=j,a[k][i]=j,a[N-i-1][k]=j,a[k][N-i-1]=j,k++);
   for(i=0;i<N;i++)
   {
    for(k=0;k<15;k++)
     printf(" ");
    for(j=0;j<N;j++)
    printf("%c ",a[i][j]);
     printf("\n");
   }
}

看了人家的程序,不明白49啥意思,把49换成其他的数字,输出的结果各不相同,解释一下哦
搜索更多相关主题的帖子: 打印 void include please 
2012-04-04 20:36
C_596322153
Rank: 6Rank: 6
来 自:徽州
等 级:侠之大者
帖 子:182
专家分:466
注 册:2012-1-10
收藏
得分:3 
%c 输出
49 ASCII值为:1
50 ASCII值为:2
51 ASCII值为:3
52 ASCII值为:4
...
2012-04-04 21:32
C_596322153
Rank: 6Rank: 6
来 自:徽州
等 级:侠之大者
帖 子:182
专家分:466
注 册:2012-1-10
收藏
得分:0 
程序代码:
#include"stdio.h"
#include"stdlib.h"

void main()
{
char a[30][30];
int i,j,k,N;
printf("please input N: ");
scanf("%d",&N);
for(i=0;i<N;a[0][i]='T',a[N-1][i]='T',a[i][0]='T',a[i][N-1]='T',i++);  // 最外层赋值 T
for(i=1;i<N-1;a[1][i]='J',a[N-2][i]='J',a[i][1]='J',a[i][N-2]='J',i++);  // 第二层 赋值 J

for(j=49,i=2;i<N/2+1;i++,j++)
   for(k=i;k<N-i;a[i][k]=j,a[k][i]=j,a[N-i-1][k]=j,a[k][N-i-1]=j,k++);    // 第三层起 依次为 1、2、3...看按ASCII表

   for(i=0;i<N;i++)     // 输出函数
   {

    for(k=0;k<15;k++)
     printf(" ");       //每行从第15列开始输出

    for(j=0;j<N;j++)
    printf("%c ",a[i][j]);  //  打印数组
     printf("\n");
   }
}
2012-04-04 21:41
懒虫827
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2012-4-3
收藏
得分:0 
回复 2楼 C_596322153
对啊,谢了
2012-04-05 16:17
懒虫827
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2012-4-3
收藏
得分:0 
回复 3楼 C_596322153
感谢
2012-04-05 16:18
songtosong
Rank: 2
来 自:仙女座星云&pound;&micro;伴星
等 级:论坛游民
帖 子:25
专家分:52
注 册:2010-8-29
收藏
得分:3 
路过,吐口水
2012-04-05 20:48
a935245228
Rank: 2
来 自:湖北武汉
等 级:论坛游民
帖 子:45
专家分:56
注 册:2012-3-12
收藏
得分:3 
不错
2012-04-05 22:45
yxiangyxiang
Rank: 3Rank: 3
来 自:/\/\/\/\/
等 级:论坛游侠
帖 子:130
专家分:186
注 册:2012-1-29
收藏
得分:3 
以前有个题目和你这个差不多该了一下
#include <stdio.h>
#define N    15
#define TTT    'T'
#define JJJ    'J'
main()
{
    int    a[N][N]={1,0}, *p=a, b[4]={N,1,-N,-1}, k=0, i, j;
   
    while( (++k)<N )
    {
        for( i=0; i<4; i++ )
            for( ; !(*(p+b[i])); *p=k)
                p += b[i];
    }
   
    for( i=0; i<N; i++, putchar('\n'))
        for( j=0; j<N; j++ )
        {
            switch( a[i][j] )
            {
                case 1:    printf("%3c", TTT);    break;
                case 2:    printf("%3c", JJJ);    break;
                default: printf("%3d", a[i][j]-2);    break;
            }
        }
}

[ 本帖最后由 yxiangyxiang 于 2012-4-7 12:25 编辑 ]
2012-04-07 12:22
C_596322153
Rank: 6Rank: 6
来 自:徽州
等 级:侠之大者
帖 子:182
专家分:466
注 册:2012-1-10
收藏
得分:0 
一起学习 呵呵
2012-04-07 12:27
快速回复:打印一个 N*N 的方阵,N为每边字符的个数,要求最外一层为T,第二层为 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019910 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved