C语言 输入数字和大写字母,输出由字母组成的菱形。(15分)

题目内容:
输入数字和大写字母,输出由字母组成的菱形。

输入样例:
3[空格]B[回车]

输出样例:
[空格][空格]B[回车]
[空格]C[空格]C[回车]
D[空格][空格][空格]D[回车]
[空格]E[空格]E[回车]
[空格][空格]F[回车]

#include <stdio.h>
#include <math.h>
int main(void)
{
int i,j,n;
char ch;
scanf("%d %c",&n,&ch);
for(i=1;i<=n;i++)
{
for(j=1;j<=n+i-1;j++)
{
if(j==n-i+1||j==n+i-1)
{
if(ch>'Z')
printf("%c",ch-26);
else
printf("%c",ch);
}
else
printf(" ");
}
ch++;
printf("\n");
}
for(i=1;i<=n-1;i++)
{
for(j=1;j<=2*n-i-1;j++)
{
if(j==i+1||j==2*n-i-1)
{
if(ch>'Z')
printf("%c",ch-26);
else
printf("%c",ch);
}
else
printf(" ");
}
ch++;
printf("\n");
}
return 0;
}
考虑字符超过Z的情况。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-06-26
#include <stdio.h>
#include <math.h>
int main(void) 
{
int i,n;
char c;
while(scanf("%d %c",&n,&c)!=EOF)
{
for(i=-(n-1);i<n;++i)
{
printf("%*c%*c\n",abs(i)+1,c+i+n-1,abs(i)!=n-1?2*(n-abs(i))-2:1,abs(i)!=n-1?c+i+n-1:'\0');
}
}
return 0;
}

本回答被网友采纳