目前主要分为三个专栏,后续还会添加:
专栏如下: C语言刷题解析 C语言系列文章 我的成长经历
感谢阅读!
初来乍到,如有错误请指出,感谢!
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的正斜线形图案。
输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成正斜线的“*”的数量。
输出描述:
针对每行输入,输出用“*”组成的正斜线。
思路:
由题目的输出示例可以看出
也是由空格和星号组成
输入 4
空格数分别是:3 2 1 0 星号数都是1个
在每次一行打印完之前加一个星号 再加一个回车符就可以了
//打印每行的空格
//n-i-1 的思路 由示例可以看出 空格是慢慢减少的
//而i也是逐渐变化的
//假如用户输入4 第一行就是3个空格
//首先肯定能想到 是根据n来改变的 写成n-1的话始终都是三
//如果再减去一个i的话 那就可以这样计算 符合题意4-0-1=3
//第二行 4-1-1=2 第三行 4-2-1=1 第四行 4-3-1=0
代码 1 :
/*思路 : 由题目的输出示例可以看出
也是由空格和星号组成
输入 4
空格数分别是:3 2 1 0 星号数都是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;
//打印每行的空格
//n-i-1 的思路 由示例可以看出 空格是慢慢减少的
//而i也是逐渐变化的
//假如用户输入4 第一行就是3个空格
//首先肯定能想到 是根据n来改变的 写成n-1的话始终都是三
//如果再减去一个i的话 那就可以这样计算 符合题意4-0-1=3
//第二行 4-1-1=2 第三行 4-2-1=1 第四行 4-3-1=0
for(j = 0; j< n-i-1;j++)
{
printf(" ");
}
printf("*\n");
}
}
return 0;
}
代码 2 :
#include<stdio.h>
int main()
{
int n,i,j;
while(scanf("%d",&n)!=EOF)
{
getchar();
for(i=n;i>=1;i--)
{
for(j=1;j<=i;j++)
{
if(j<i)
printf(" ");
if(j==i)
printf("*\n");
}
}
}
return 0;
}