目前主要分为三个专栏,后续还会添加:
专栏如下: C语言刷题解析 C语言系列文章 我的成长经历
感谢阅读!
初来乍到,如有错误请指出,感谢!
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”三角形图案。
输入描述:
多组输入,一个整数(3~20),表示输出的行数,也表示组成三角形边的“*”的数量。
输出描述:
针对每行输入,输出用“*”组成的“空心”三角形,每个“*”后面有一个空格。
思路 :
由题目示例可以看出 可以由一个正方形砍去一半 所表示出来
i为行 j为列
当i==j的时候 就可以打印出一个星星加一个空格
当j 列为0 的时候 就可以打印出一列
当i==n-1 的时候 就可以把最下面的打印出来
代码 1 :
/*思路 : 由题目示例可以看出 可以由一个正方形砍去一半 所表示出来
i为行 j为列
当i==j的时候 就可以打印出一个星星加一个空格
当j 列为0 的时候 就可以打印出一列
当i==n-1 的时候 就可以把最下面的打印出来
*/
# include <stdio.h>
int main ()
{
int n = 0;
while(scanf("%d",&n)!=EOF)
{
int i = 0;
for(i = 0; i<n;i++)//控制每一行的星星和空格
{
int j = 0;
//控制多少列
for(int j = 0; j<n;j++)
{
//条件判断 i==j j==0 i==n-1
if (i==j||j==0||i==n-1)
{
printf("* ");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
代码 2 :
/*思路 : 由题目示例可以看出 可以由一个正方形砍去一半 所表示出来
i为行 j为列
当i==j的时候 就可以打印出一个星星加一个空格
当j 列为0 的时候 就可以打印出一列
当i==n-1 的时候 就可以把最下面的打印出来
*/
# include <stdio.h>
int main ()
{
int n = 0;
while(scanf("%d",&n)!=EOF)
{
int i = 0;
for(i = 0; i<n;i++)//控制每一行的星星和空格
{
int j = 0;
//控制多少列
for(int j = 0; j<n;j++)
{
//条件判断 i==j j==0 i==n-1
if (i==j||j==0||i==n-1)
{
printf("* ");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
函数所写