无聊去一些论坛写的...
代码
/*******************************************************************************
我自己的做法是:每次要输出的字符, 用一个字符常量累加相应的数(转换为相应的ASCII码),
再累加一次整数,再输出;当要逆序输出字母时,同理。
*******************************************************************************/
#include <stdio.h>
#define N 5
#define src 'A'
int main()
{
int i, j, index;
char dest;
index = 0;
for (i = 1; i <= N; i++) /* 第1~5行 */
{
for (j = N - i; j >= 1; j--) /* 输出空格 */
{
putchar(' ');
}
for (j = 1; j <= 2 * i - 1; j++) /* 输出字母 */
{
dest = src + index;
index++;
putchar(dest);
}
putchar('\n');
}
index = 15;
for (i = 4; i >= 1; i--) /* 第6~19行 */
{
for (j = N - i; j >= 1; j--) /* 输出空格 */
{
putchar(' ');
}
for (j = 1; j <= 2 * i - 1; j++) /* 输出字母 */
{
dest = src + index;
index--;
putchar(dest);
}
putchar('\n');
}
return 0;
}