%*c 用于输入时,忽略一个字符的输入,可用于忽略换行和 getchar() 作用一样;
%*c 用于输出时,输出若干个空格后输出一个字符,比如 printf("%*c", 10, 'a'); 是输出9个空格在第十个位置输出'a';
题目:打印如下的空心三角形,遇到 '@' 结束
A A A A A A A A A A A AAAAAAAAAAAAA
# include <stdio.h> int main() { int i, n; char ch, ok; ok = 0; while (1) { scanf("%c", &ch); if (ch == '@') break; scanf("%d%*c", &n); if (ok) putchar('\n'); else ok = 1; if (n >= 1) printf("%*c\n", n, ch); for (i = 2; i < n; ++i) printf("%*c%*c\n", n-i+1, ch, 2*i-2, ch); if (n > 1) { for(i = 0; i < 2*n-1; ++i) putchar(ch); putchar('\n'); } } return 0; }
//