HDOJ 2091 空格的特殊输入输出格式

%*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;
}

//

posted on 2012-07-05 11:30  getgoing  阅读(337)  评论(0编辑  收藏  举报

导航