首页 > 试题广场 >

正斜线形图案

[编程题]正斜线形图案
  • 热度指数:16505 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的正斜线形图案。

输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成正斜线的“*”的数量。


输出描述:
针对每行输入,输出用“*”组成的正斜线。
示例1

输入

4

输出

   *
  * 
 *  
*   
示例2

输入

5

输出

    *
   * 
  *  
 *   
* 
#include<stdio.h>
int main()
{
    int n;
    while( scanf("%d",&n) != EOF )
    {
        for( int i = 0 ; i < n ; i++ ) 
        {
            for( int j = n - i - 1 ; j > 0 ; j-- ) printf(" ");
            printf("*");
            printf("\n");
        }
    }
    return 0;
}

发表于 2022-06-17 10:01:00 回复(0)
这题最变态的地方就在于后面的空格还要打出来
#include<bits/stdc++.h>
using namespace std;

int main() {
    int n;
    while(cin >> n) {
        for(int i=0;i<n;i++) {
            for(int j=i+1;j<n;j++)
                cout << ' ';
            cout << '*';
            for(int j=0;j<i;j++)
                cout << ' ';
            cout << endl;
        }
    }
    return 0;
}
不然就报格式错误

发表于 2020-07-31 16:17:24 回复(0)
#include <stdio.h>
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF){
        int i,j;
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                if(i+j==n-1){
                    printf("*");
                }else{
                    printf(" ");
                }
            }
            printf("\n");
        }
    }
}

发表于 2020-04-11 08:59:00 回复(0)
#include <stdio.h>

int main() {
    int a;
    while (scanf("%d", &a) != EOF) 
    {
        for (int i=0; i<a; i++) 
        {
            for (int j=0; j<a; j++) 
            {
                if (j==a-i-1) 
                {
                    printf("* ");
                }
                else 
                {
                printf(" ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}

发表于 2024-04-21 14:04:14 回复(0)
#include <stdio.h>

int main() {
    int n=0;
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=0;i<n;i++)
        {
            for(int j=1;j<n-i;j++)
                printf(" ");
            printf("*\n");
        }
    }
    return 0;
}

编辑于 2024-04-05 21:16:04 回复(0)
#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;j++)
            {
                if(i+j==n-1)
                printf("*");//打印&号
                else
                 printf(" ");//其余地方填充空格
            }
            printf("\n");
        }
    } 
    return 0;
}

编辑于 2024-01-09 19:38:04 回复(0)
#include <stdio.h>
int main(){
    int n;
    while(scanf("%d", &n) != EOF){
        for(int i = n; i >= 1; i--){
            for(int j = 1; j <= i; j++)
                printf("%c", i == j ? '*' : ' ');
            printf("\n");
        }
    }
    return 0;
}

发表于 2022-07-22 23:04:33 回复(0)
#include<stdio.h>

int main()
{
    int n;
    int i = 0 , j = 0;
    while((scanf("%d",&n))!=EOF)
    {
        for(i = 0 ; i<n ;i++)
        {
            for(j = 0 ; j<n-i-1 ; j++)
                printf(" ");
            printf("*\n");
        }
    }
    return 0;
}
发表于 2024-10-27 20:49:36 回复(0)
while True:
    try:
        n = int(input())
        for i in range(n-1,-1,-1):
            temp =  " "*i+"*"

            print(f"{temp:<{n+2}}")  #  ^居中,>居右,<居左对齐
    except Exception as e:
        break

发表于 2024-09-28 19:31:49 回复(0)
#include<stdio.h>
int main()
{
int n=0;
while((scanf("%d",&n))!=EOF)
{
int i=0,j=0;

for(i=0;i<n;++i)
{
for(j=0;j<n;++j)
{
if((i+j)==(n-1))
printf("*");
else
 printf(" ");

}
printf("\n");

}

}

    return 0;
}
发表于 2024-08-24 12:14:31 回复(0)

int main()
{
    int n = 0;
    int i = 0, j = 0;
    while (scanf("%d", &n) != EOF)
    {
        char arr = '*';
        for (i = n; i > 0; i--)
        {
            for (j = 1; j < i; j++)
            {
                printf(" ");
            }
            for (int k = 0; k<=i-j; k++)
            {
                printf("%c ", arr);
            }
            printf("\n");
        }
    }
}
发表于 2024-08-18 11:18:11 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int n = in.nextInt();
            for (int i = 0; i < n; i++) {
                for (int j = n - 1 - i; j >= 0; j--) {
                    // 跟反斜线意思差不多,看打印星星的条件
                    if (j == 0) {
                        System.out.println("* ");
                    } else {
                        System.out.print(" ");
                    }
                }
            }
        }
        in.close();
    }
}

发表于 2024-08-17 19:31:47 回复(0)
int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n - i - 1; j++) {
                printf(" ");
            }
            printf("*\n");
        }
    }

    return 0;
}

发表于 2024-08-03 11:01:44 回复(0)
#include <stdio.h>
int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        for(int i=0;i<n;i++){
            for(int j=0;j<n-i-1;j++){
                printf(" ");
            }
            printf("*");
            printf("\n");
        }
    }
    return 0;
}
发表于 2024-07-12 10:01:40 回复(0)

#include <stdio.h>

int main() {
    int n = 0;
    while (scanf("%d", &n) != EOF) 
    {
        //打印n行
        for(int i = 0; i < n ; i++)
        {   
            for(int j = 0; j < n - i -1; j++)   
                printf(" ");

            printf("*\n");
        }
    }
    return 0;
}


发表于 2024-06-20 18:26:00 回复(0)
/*思路 : 由题目的输出示例可以看出 
也是由空格和星号组成 
输入 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;
}

发表于 2024-06-02 13:01:00 回复(0)
发表于 2024-03-29 17:13:59 回复(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++)
            {
                printf(" ");
            }
            printf("*\n");
        }
    }

    return 0;
}

编辑于 2024-03-19 12:29:00 回复(0)
while True:
    try:
        a = int(input())
        while a>=1:
            print(" "*(a-1)+"*")
            a=a-1
    except:
        break

发表于 2024-02-05 14:58:42 回复(0)
#include <stdio.h>

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        for (int y = 1; y <= n; y++) {
            for(int x=1; x<=n-y; x++){
                printf(" ");
            }
            printf("*\n");
        }
    }
    return 0;
}
编辑于 2024-01-29 19:53:10 回复(0)