当前位置: 代码迷 >> C语言 >> 求助:打印字母图案
  详细解决方案

求助:打印字母图案

热度:340   发布时间:2006-05-30 09:51:00.0
重新看了msdn,原来还可以这样,有收获。
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main( )
{ int i,j,c='A';
for(i=0;i<14;i+=2)
{ printf("%*c",14-i,' ');
for(j=0;j<=i;j++)
putchar(c+i/2);
putchar('\n');
}
}
输出图案为
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
FFFFFFFFFFF
GGGGGGGGGGGGG

----------------解决方案--------------------------------------------------------
回复:(金为床兮银为椅)重新看了msdn,原来还可以这...
不要跟我较劲,因为我发表的所有程序事先都是调试、运行过的。我把它们贴出来无非是传播一些我认为值得传播的大大小小的C编程技巧。有些网友可能因为在网吧,所以很难弄清哪个人发表的能运行、效果如何。
----------------解决方案--------------------------------------------------------

没有调试过,我也不会说你的不对,不知道怎么回事,用12楼的就好用,用5楼的就不行,你自己看看吧。
网络是虚拟的,在网络上和别人生气,只能说是幼稚,好听的叫年轻。

我又改了一下:
void main()
{
int j;
int k = 0;
int l = 1;

char ch2 = 'A';
while (k <= 6)
{

for (j = 1; j <= l; j++)
{
if (j == 1)
{
printf("%*c", 14 - l, ch2 + k);
}
if (j != 1)
{
printf("%c", ch2 + k);
}

}
printf("\n");
l += 2;
k++;
}

}


----------------解决方案--------------------------------------------------------
回复:(金为床兮银为椅)没有调试过,我也不会说你的...
以下是引用金为床兮银为椅在2006-5-30 10:03:00的发言:

没有调试过,我也不会说你的不对,不知道怎么回事,用12楼的就好用,用5楼的就不行,你自己看看吧。
网络是虚拟的,在网络上和别人生气,只能说是幼稚,好听的叫年轻。

我又改了一下:
void main()
{
int j;
int k = 0;
int l = 1; //用小L作变量名,哪位师傅传授的技艺呀?

char ch2 = 'A';
while (k <= 6)
{

for (j = 1; j <= l; j++)
{ //如果下文用else,此左花可省略
if (j == 1)
{ //有必要?
printf("%*c", 14 - l, ch2 + k);
} //有必要?
if (j != 1) //改用else可以么?
{ //有必要?
printf("%c", ch2 + k);
} //有必要?

} //如果上文用else,此右花可省略
printf("\n");
l += 2;
k++;
}

}

恕我直言,这叫改退、不叫改进。实话实说。
反正您成熟、俺幼稚,不会像俺一样生气,是不?


----------------解决方案--------------------------------------------------------
我不会和你较劲地。。。。
你自己试验试验5楼的程序。。。
本主题最后一帖,再说就是浪费感情。
----------------解决方案--------------------------------------------------------
回复:(金为床兮银为椅)我不会和你较劲地。。。。你...
以下是引用金为床兮银为椅在2006-5-30 10:31:00的发言:
我不会和你较劲地。。。。
自己试验试验5楼的程序。。。
本主题最后一帖,再说就是浪费感情。

报告长官,5楼的程序在VC下没有任何语法错误,运行正常。输出图案为:
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
FFFFFFFFFFF
GGGGGGGGGGGGG
我相信这种金字塔形才是楼主原本希望的。遗憾的是论坛上的编辑器不理想,它留给空格的字宽似乎只是正常字母的1/2。楼主呢又没有使用预览功能。从美学角度这是一目了然的事。

[此贴子已经被作者于2006-5-30 11:03:10编辑过]


----------------解决方案--------------------------------------------------------

#include <mem.h>
#include <stdio.h>
#include <conio.h>
char o[80];
int N,i;
int main(void)
{


scanf("%d",&N);
for(i=0;i<N;i++)
printf("%*s\n",')'+i,memset(o,'A'+i,i*2+1));

return 0;
}


----------------解决方案--------------------------------------------------------

谢谢大家,大家辛苦了!


----------------解决方案--------------------------------------------------------
请问
printf("%*c",14-i,' ');
则输出LZ要求的直角三角形图案。
是什么意思?

----------------解决方案--------------------------------------------------------
  相关解决方案