KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的带空格直角三角形图案。
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的带空格直角三角形图案。
多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。
针对每行输入,输出用“*”组成的对应长度的直角三角形,每个“*”后面有一个空格。
5
*
* *
* * *
* * * *
* * * * *4
*
* *
* * *
* * * *import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
int num = sc.nextInt();
int count = 1;
for(int i=num;i>0;i--) {
for(int j = i-1;j>0;j--){
System.out.print(" ");
}
for(int k = 0;k < count;k++ ) {
System.out.print("* ");
}
System.out.println();
count++;
}
}
}
} import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
for (int i = 1; i <=n; i++) {
System.out.println(String.join("", Collections.nCopies(n-i, " "))+
String.join("", Collections.nCopies(i, "* ")));
}
}
}
} #include<stdio.h>
int main(){
int num = 0;
while(scanf("%d",&num)!=EOF){
getchar();
for(int i = 1;i <= num; i++){
for(int j = num - i;j > 0;j--){
printf(" ");
}
for(int k = 0;k < i; k++){
printf("* ");
}
printf("\n");
}
}
return 0;
} #include<stdio.h>
int main()
{
int n;
while(~scanf("%d",&n)){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i+j<n-1)
printf(" ");
else
printf("* ");
}
printf("\n");
}
}
return 0;
} #include <iostream>
#include<vector>
#include<cstring>
using namespace std;
int main() {
char a[20][20];
memset(a, ' ', sizeof(a));
int n;
cin>>n;
int k;
k=0;
// 从第n行开始赋值
for(int i=n-1;i>=0;i--){
//从第一列开始赋值
for(int j=k;j<n;j++){
a[i][j]='*';
}
k++;
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
printf("%c ",a[i][j]);
}
printf("\n");
}
} 哪位大神帮忙看看,我为什么只通过了2/3的测试
/*思路 : 仔细观察题目答案的输出可以发现
每一次打印都是两个空格加上一个空格一个星号
先打印一行的内容 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 n = 0;
while(scanf("%d",&n) != EOF)
{
for(int i = 1; i <= n; i++)
{
for(int j = n -i; j > 0; j--)//空格数是逐行递减且为总行数-第几行数
{
printf(" "); //两个空格,很重要,否则格式写不对
}
for(int k = 1; k <= i;k++) // *的数量是跟行数对应的
{
printf("* ");
}
printf("\n");
}
}
return 0;
}