您的位置:首页 > 其它

空心三角形的输出oj题目详解

2017-10-29 12:48 330 查看
                由于刚接触c语言不久所以面对这道题还是有点棘手,参考了一下网上的答案看了几个小时才看懂。所以在此对其做一下解释。

# include<stdio.h>

int main()

{

char a;

    int n,i,j=0,k,f=0;

while(scanf(" %c",&a)!=EOF&& a!='@')

{

f++;

   scanf("%d",&n);

if(f!=1)

   printf("\n");//当再次输入数值时三角形之间有一空行

for(i=1;i<n;i++)//控制行数,也是控制外围第一个字符

{

for(j=n-i;j>=1;j--)

{

  printf(" ");//控制第一个字符前的空格

}

printf("%c",a);

   for(k=0;k<2*i-3;k++)//控制中间空格的输出

   printf(" ");

   if(i==1)

printf("\n");//如果是第一行的话就换行

         else

     printf("%c\n",a);//否则就输出右边边缘的字符

}

for(i=1;i<=2*n-1;i++)//输出最后一行

printf("%c",a);

printf("\n");//保证最后一行没有多余的空格

}

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: