编写C语言程序,输入顶行字符和图形的高,输出如下所示图形

A
B B
C C
D D
E E
D D
C C
B B
A

授人以鱼不如授人以渔,我告诉你这问题的几个解决方法:
1,最简单的,直接输入
printf(" A");
printf(" B B");
以此类推,直接在printf函数中输入空格,达到想要的结果。
2,控制输出域,如下
printf("\n%5c",'a');
printf("\n%4c%2c",'b','b');
printf("\n%3c%2c%2c",'c','c','c');
3,通过控制循环次数,来控制空格的输出
楼上基本都是这种,我就不多说了
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
写的不是很好,请笑纳。
#include<stdio.h>
void main()
{
int i,j,k,n,m;
char c;
printf("输入字符和高,以逗号隔开,注意,行高只能为奇数:");
scanf("%c,%d",&c,&n);
n = n/2;
for(i=1;i<=n+1;i++)
{
for(j=1;j<=n-i+1;j++)
printf(" ");
printf("%c",c++);
if(i != 1)
{
for(k=1;k<=2*i-3;k++)
{
printf(" ");
}
m = k-1;
printf("%c",c-1);
}
printf("\n");
}
c--;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
printf(" ");
printf("%c",--c);
if(i != n)
{
for(k=(m-=2);k>=1;k--) printf(" ");
printf("%c",c);
}
printf("\n");
}
}本回答被提问者采纳
第2个回答  2010-10-31
#include<stdio.h>
#include<stdlib.h>
main()
{ int i,j,k=5,m;
char a;
scanf("%c",&a);
m=2*k-1;
for(i=2;i<=m;i++)
{
if(i<=k)for(j=1;j<=k+i-1;j++)
{if(j==k+i-1) printf("%c\n",a+i-1);
else if(j==k+1-i) printf("%c",a+i-1);
else printf(" ");}
else for(j=1;j<=m+k-i;j++)
{if(j==m+k-i) printf("%c\n",a+m-i);
else if(j==k+i-m) printf("%c",a+m-i);
else printf(" ");}
}
system("pause");
}
可以改变k的值...