KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的带空格直角三角形图案。
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的带空格直角三角形图案。
多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。
针对每行输入,输出用“*”组成的对应长度的直角三角形,每个“*”后面有一个空格。
5
*
* *
* * *
* * * *
* * * * *4
*
* *
* * *
* * * *#include <stdio.h>
int main() {
int a;
while (scanf("%d", &a) != EOF) {
for (int i = 0; i < a; i++)
{
//a-1-i会随着i变化,第一打印5-1-0个两空格
for (int j = 0; j < a-1-i; j++) //打印两个空格
printf(" ");
for (int j = 0; j <= i; j++) //打印*和空格
printf("* ");
printf("\n"); //换行
}
}
return 0;
} /*思路 : 仔细观察题目答案的输出可以发现
每一次打印都是两个空格加上一个空格一个星号
先打印一行的内容 j=0;j<n-1-i;j++ 这是控制打印两个空格的代码
i是0的时候等于没减 i是1的时候减去1 i是2的时候减去2 i是3的时候减去3
(减去空格的个数)
j=0;j<=i;j++ 这是控制星号的代码
i是从0进入来的 当i等于1的时候 打印一次 * i等于2的时候打印两次 *
以此类推*/
# 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(j = 0; j<n-1-i;j++)
{
printf(" ");
}
for(j = 0; j<=i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
} #include <stdio.h>
int main()
{
int h;
char ch1 = '*';
char ch2 = ' ';
while (scanf("%d", &h) != EOF)
{
int n = h;
for(int i = 0;i < h;i++)
{
for(int j = 0;j < h;j++)
{
if(j<(n-1))
{
printf(" ");
}//打印空格
else
{
printf(" *");
}
}
n--;
printf("\n");
}
}
return 0;
} 我想问问为何我打印出的和题目给的不太一样#include <stdio.h>
int main()
{
int n = 0;
int i = 0;
int j = 0;
while (scanf("%d", &n) != EOF)
{
for(i = 0; i < n; i++)
{
for(j = 0; j < n - i - 1; j++)
{
putchar(' ');
putchar(' ');
}
for(j = 0; j <= i; j++)
{
putchar('*');
putchar(' ');
}
putchar('\n');
}
}
return 0;
}