#include <stdio.h>
int main(void)
{
int i,j;
char ch,n;
scanf("%d",&ch);
n=ch-'A';
while(ch%2!=0) 有什么用啊这个??
{
for(i=0;
i<n+1;i++)
应该是i<n,如果前边是i=1;这里才应该是i<n+1;
{
for(j=0;j<n;j++)
printf("");
for(j=0;j<n+1;j++)
printf("%c",ch--);这里不对啊,这里应该是要字母由A到输入的字母为止的
for(j=0;j<n+1;j++)
printf("%c",ch++); 这里相应的也就不对了
}
};即使有用,也要注意,后边不应该有分号。。
return 0;
}
根据你这个思想(使用一个外部循环来处理行,在每一行中使用三个内部循环,一个处理空格,一个以升序打印字母,一个以降序打印字母)可以写成如下的程序:
#include<stdio.h>
int main(void)
{
int a;
char i,j,k;
printf("请输入字母: ");
scanf(" %c",&i); /* 输入的字母用 i */
for(k='A' ; k<=i ; k++) /* 输入的字母 i 減掉 A 的数目就是要做的行数 */
{
for(a=0 ; a<i-k ; a++)
printf(" "); /* 印出空白字元 */
for(j='A' ; j<=k ; j++)
printf("%c",j); /* 递增印出字母 */
for(j=k-1 ; j>='A' ; j--)
printf("%c",j); /* 递減印出字母 */
printf("\n");
}
return 0;
}