| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2423 人关注过本帖
标题:编程打印图形
只看楼主 加入收藏
meiling01
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-11-2
收藏
 问题点数:0 回复次数:19 
编程打印图形

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
下面是我编出来N=15的例子,但是我觉得我编的很麻烦,恳请达人帮我简化一下,最好能用上循环,这样能更好的模块化,谢谢阿。
#include<stdio.h>
void main()
{
int i,j,k=2;

for(i=0;i<15;i++,putchar('\n'))
{
for(j=0;j<15;j++)
{
if(i*j==0||j==14||i==14)
printf("T");

else if(i*j==j||i*j==i||j==13||i==13)
printf("J");
else if(i==k||j==k||j==15-k-1||i==15-k-1)

printf("%d",k-1);

else if(i==k+1||j==k+1||j==15-k-1-1||i==15-k-1-1)

printf("%d",k+1-1);

else if(i==k+2||j==k+2||j==15-k-2-1||i==15-k-2-1)

printf("%d",k+2-1);
else if(i==k+3||j==k+3||j==15-k-3-1||i==15-k-3-1)

printf("%d",k+3-1);
else if(i==k+4||j==k+4||j==15-k-4-1||i==15-k-4-1)

printf("%d",k+4-1);


else printf("%d",k+5-1);


}

}

}

[此贴子已经被作者于2006-11-18 11:22:00编辑过]

搜索更多相关主题的帖子: 图形 打印 数字 字符 
2006-11-18 11:20
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
有一种用绝对值的..

你可以把这东西当作一个2D的图,他回有坐标.分别为X,Y值.当这2个值相加时,得出一个值,这个值用来控制输出一种不一样的图形.再想想!

人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2006-11-18 12:06
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 

晕.貌似会打成菱形,我记得以前看过的.再想想哦!


人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2006-11-18 12:10
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
#include <stdio.h>
#include <math.h>
main()
{
int i,j;
for(i=-3;i<=3;i++)
{
for(j=-3;j<=3;j++)
{
if(abs(i)==3||abs(j)==3)
printf("J");
else if(abs(i)==2||abs(j)==2)
printf("T");
else if(abs(i)==1||abs(j)==1)
printf("1");
else if(abs(i)==0&&abs(j)==0)
printf("2");
}
printf("\n");
}
}

不知道这样的能不能接受哦...这个不是太好.我算不出来.这个比较容易实现.只显示了一半.

汗,貌似没啥改进哦。。。我想不太出来了!SORRY

[此贴子已经被作者于2006-11-18 13:18:49编辑过]


人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2006-11-18 12:47
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

写出来了.大家看看吧.

#include<stdio.h>
#define N 15
char a[8]={'T','J','1','2','3','4','5','6'};
int main()
{
int i,j;
char b[N+1][N+1];
for(i=1;i<=N/2+1;i++)
{
for(j=i;j<=N-i+1;j++)
{
b[i][j]=a[i-1];
b[N-i+1][j]=a[i-1];
b[j][i]=a[i-1];
b[j][N-i+1]=a[i-1];
}
}

for(i=1;i<=N;i++)
{
for(j=1;j<=N;j++)
{
printf("%c",b[i][j]);
}
printf("\n");
}
return(0);
}


倚天照海花无数,流水高山心自知。
2006-11-18 14:04
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
还是斑竹厉害。我都没想到。还转牛角了。多多学习。T。T

人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2006-11-18 14:12
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
我也是一时发热,突然想到可以这样做.不知道里面有没有问题.大家帮忙看看吧.谢了...

倚天照海花无数,流水高山心自知。
2006-11-18 14:27
♀乖宝宝
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-11-16
收藏
得分:0 
用循环会很麻烦的~~~~

没有什么不可能!!!
2006-11-18 15:00
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
不是很麻烦啦.摆脱好好看看,已经有不错的程序出现了!

人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2006-11-18 15:07
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用♀乖宝宝在2006-11-18 15:00:44的发言:
用循环会很麻烦的
用二唯表把它先存起来,直接打印输出.?我是想不出不用循环应该怎么做

倚天照海花无数,流水高山心自知。
2006-11-18 15:12
快速回复:编程打印图形
数据加载中...
 
   



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

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