空心三角形的输出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;
}
# 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;
}
相关文章推荐
- 第十一周—C语言 oj上机题目(输出空心三角形)(函数的调用)
- 第十一周oj题目输出空心三角形
- HDOJ_杭电2091_空心三角形,,简单的输出题目。考察for循环
- 杭电OJ -- 2091 空心三角形
- 第3周项目3—输出星号图(空心三角形)
- 九度OJ 题目1058:反序输出
- 华为OJ题目(二十一):输入n个整数,输出其中最小的k个
- 第16周 oj题目(逆序输出数组)
- 【九度OJ】题目1065:输出梯形 解题报告
- 杭电OJ——1025 Constructing Roads In JGShining's Kingdom(比较有趣的一道题目,思路详解)
- 第十五周oj题目输出特定的字符串
- 【九度OJ】题目1073:杨辉三角形 解题报告
- 第十六周OJ题目(1)——逆序输出数组
- OJ-3134 动态规划基础题目之数字三角形
- 第八周—C语言 oj 上机题目(输出数字塔)
- OJ题目积累-输出10个整数
- 第三周第三题(2) 输出空心三角形
- 输出空心三角形
- 第十一周:C语言:输出一个空心三角形
- 输出一个等边三角形的字母阵,等边三角形的两腰为字母A,往里靠依次字母大一个(详细题目文章中描述)