供参考:
#include<stdio.h>
int main()
{
char c, ch = ' ';
int j, k, n = 5;
while (scanf(" %c", &c) == 1 && c != '@') {
scanf("%d", &n);
for (k = 0; k < n; k++)
{
for (j = 1; j <= n - k; j++)
printf(" ");
for (j = 1; j <= 2 * k + 1; j++)
printf("%c", (j == 1 || j == 2 * k + 1 || k == n - 1) ? c : ch);
printf("\n");
}
}
return 0;
}
利用for循环,主要是计算好行和对应的打印字符数量和位置就可以了