#include <stdio.h>void main(){ char shape[8];char a,b;int i,j;

#include <stdio.h>
void main()
{
char shape[8];
char a,b;
int i,j;
printf("Please enter a letter (A-Z):");
scanf("%c",&a);
printf("Please enter another letter (A-Z):");
scanf("%c",&b);
for(i=0;i<4;i++)
{
for (j=0;j<7;j++)
{
if(j<3-i&&j>3+i)
strcpy(shape[j]," ");
else if(j==3-i&&j==3+i)
strcpy(shape[j],a);
else if (j>3-i&&j<3+i)
strcpy(shape[j],b);
}
printf("%s\n",shape);
}

for(i=0;i<3;i++)
{
for(j=0;j<7;j++)
{
if(j<i+1&&j>6-i)
strcpy(shape[j]," ");
else if(j==i+1&&j==6-i)
strcpy(shape[j],a);
else if(j>i+1&&j<6-i)
strcpy(shape[j],b);
}
printf("%s\n",shape);
}
}
运行到Please enter another letter (A-Z):就退出了。
原题是要打印一个字母图形(字母用户自选,)

口口口A
口口A B A
口A B B B A
A B B B B B A
口A B B B A
口口A B A
口口口A
(”口“为空格)

给的提示是定义两个函数,一个用来打印说明和scanf字母,另一个用来写图形(还说第一个函数可能要用两次)谁知道这是什么意思?应该怎么写?可以加分,谢谢!
C++的:脊答
#include<iostream>
using namespace std;
char jies(int z);/*打印说明函数*/
void tux(char a,char b);/*定义画图函数*/
void main()
{
char aa,bb;
aa = jies(1);
while(cin.get()==!'\n');
bb = jies(2);
tux(aa,bb);
system("pause");
}
char jies(int z)
{
char a;
cout<<"请输入第"<<z<<"个A到Z的字瞎野租母:";
while(!(cin.get(a)&&a>='A'&&a<='Z'))
{
cout<<"请重新输入:"磨兆;
while(cin.get()!='\n');
}
return a;
}
void tux(char a,char b)
{
int i,j;
for(i=0; i<7; i++)
{
for(j=0; j<abs(i-3); j++)
putchar(' ');
putchar(a);
for(j=0; j<5-2*abs(i-3); j++)
putchar(b);
if(j>0)putchar(a);
putchar('\n');
}
}
缓冲袭锋李区没情况,回基圆车被b接收
在scanf("%c",&b);前面加上拍迟fflush(stdin);
C中使用完输宴蠢喊入之后 ,下次使用之晌野前务必清空缓冲区,避免因为ENTER键在缓冲区档铅,被后面的程序接收到.