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; }
#include<stdio.h> int main() { int n=0; while(~scanf("%d",&n)) { int x=1; int y=1; for(y=1;y<=n;y++) { for(x=1;x<=n;x++) { if(x+y-n-1>=0) printf("* "); else printf(" "); } printf("\n"); } } return 0; }