首页 > 试题广场 >

翻转金字塔图案

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

输入描述:
多组输入,一个整数(2~20),表示翻转金字塔边的长度,即“*”的数量,也表示输出行数。


输出描述:
针对每行输入,输出用“*”组成的金字塔,每个“*”后面有一个空格。
示例1

输入

5

输出

* * * * * 
 * * * * 
  * * * 
   * * 
    * 
示例2

输入

6

输出

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

    }
    return 0;
}

发表于 2024-12-15 18:15:26 回复(0)
#include <stdio.h>

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

    return 0;
}
发表于 2024-12-02 20:30:31 回复(0)
#include<stdio.h>
int main()
{
    int n = 0;
    while ((scanf("%d", &n)) != EOF)
    {
        int i = n;
        for (; i >= 1; --i)

        {

            int x = n - i;
            for (; x > 0; --x)
            {
                printf(" ");
            }//开头空格打印

            int j = 1;
            for (; j <= i; ++j)
            {
                if (j < i)
                    printf("* ");
                else
                    printf("*");
            }
            printf("\n");

        }

     

    }

    return 0;
}
发表于 2024-08-24 11:29:40 回复(0)
#include <stdio.h>

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

发表于 2024-08-05 22:34:11 回复(0)
int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        for (int i = 1; i <= n; i++) {
            for (int j = 0; j < i - 1; j++) {
                printf(" ");
            }
            for (int k = n + 1 - i; k > 0 ; k--) {
                printf("* ");
            }
            printf("\n");

        }
    }

    return 0;
}

发表于 2024-08-03 10:41:25 回复(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 < i; j++) //打印一个*和一个空格
                printf(" ");

            //a-1-i会随着i变化,当输入5时,第一行打印5-i个“* ”
            for (int j = 0; j < a - i; j++) //打印一个空格
                printf("* ");

            printf("\n");   //换行
        }
    }
    return 0;
}

发表于 2024-06-20 17:01:14 回复(0)
/*思路 : 首先要分两个步骤 控制每一行的打印
而每一行又由 空格+* 组成
先打印每一行的的空格
再打印每一行的 星号 把两个分开来 
//(j = 0; j<i;j++)
//i为0的时候j从0开始 这里一次都不打印 i为1的时候j从0开始 这里打印一次
//i为2的时候j从0开始 这里打印两次 i为3的时候j从0开始 这里打印3次
//......

(j = 0; j<n-i; j++)
//第一行 i是0 5减0 等于0 第二行 i等于1 5减1等于4 打印四个*加空格
//第三行 i是2 5减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;
    //先打印每一行的空格 因为每一行都是由空格和星号组成的
    //i为0的时候j从0开始 这里一次都不打印 i为1的时候j从0开始 这里打印一次
    //i为2的时候j从0开始 这里打印两次 i为3的时候j从0开始 这里打印3次
            //......
            for(j = 0; j<i;j++)
            {
                printf(" ");
            }
    //再打印每一行的星星 每一行都是有空格和星星组成
    //再打印*+空格
    //第一行 i是0 5减0 等于0 第二行 i等于1 5减1等于4 打印四个*加空格
    //第三行 i是2 5减2 等于三 打印三个*加空格
    //...
            for(j = 0; j<n-i; j++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

发表于 2024-06-01 17:37:24 回复(0)
#define _CRT_SECURE_NO_WARNINGS 1

#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 < i; j++)
            {
                putchar(' ');
            }
            //输出后面的‘*’
            for (j = 0; j < n - i; j++)
            {
                putchar('*');
                putchar(' ');
            }
            //换行输出下一行
            putchar('\n');
        }
    }

    return 0;
}

编辑于 2024-03-19 11:10:54 回复(0)
#include <stdio.h>

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        for (int y = 1; y <= n; y++) {
            for (int b = 1; b < y; b++) {
                printf(" ");
            }
            for (int a = 0; a <= n - y; a++) {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}
发表于 2024-01-29 18:21:55 回复(0)
#include <stdio.h>

int main() {
    int n = 0;
    while (~scanf("%d", &n)) {
        int i = 0;
        for (i = 0; i < n; i++) //行
            //空格
            //*+空格
        {
            for (int j = 0; j < i; j++) {
                printf(" ");
            }
            for (int j = 0; j < n - i; j++) {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

编辑于 2024-01-08 23:12:37 回复(0)
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
    int n = 0;
    while(scanf("%d", &n)!=-1)
    for (int i = n; i > 0; i--)
    {
        int j = 0;
        j = n - i;
        while(j)
        {
            printf(" ");
            j--;
        }
        int a = i;
        while (a)
        {
            printf("* ");
            a--;
        }
        printf("\n");
    }
    return 0;
}
发表于 2023-11-26 10:22:32 回复(0)
#include <stdio.h>

int main()
{
    int n = 0;
    while(scanf("%d",&n)!=EOF)
    {
        int i = 0;
        int j = 0;
        int b = n;
        for(i=0;i<n;i++)
        {
            for(j=0;j<i;j++)
            {
                printf(" ");//一个空格
            }
            for(j=b;j>i;j--)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

发表于 2023-11-10 21:45:38 回复(0)
#include <stdio.h>

int main() {
    int n =0;
    while (~scanf("%d",&n))
    {
        for(int i=0;i<n;i++)
        {
            //1.blank
            for(int j=1;j<=i;j++)
            {
                printf(" ");
            }
            //2.content
            for(int j=0;j<n-i;j++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

发表于 2023-09-01 14:10:22 回复(0)
#include <stdio.h>

int main() {
    int n = 0;
    int i = 0;
    int j = 0;
    int k = 0;
    while(scanf("%d", &n) != EOF)
    {
        for(i = 0; i < n; i++)
        {
            for(j = 0; j < i; j++)
            {
                printf(" ");
            }
            for(k = 0; k < n - i; k++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}
发表于 2023-04-08 17:14:36 回复(0)
#include <stdio.h>

int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=0;i<n;i++)
        {
            for(int k=0;k<i;k++)
            {
                printf(" ");
            }
            for(int j=n;j>i;j--)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}
发表于 2023-04-06 13:19:37 回复(0)
#include <stdio.h>

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

发表于 2023-03-10 20:46:01 回复(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 < i; j++) {
                printf(" ");
            }

            for (int k = 0; k < a - i; k++) {
                printf("* ");
            }
            printf("\n");
        }

    }
    return 0;
}
发表于 2023-03-01 09:45:10 回复(0)
#include <stdio.h>

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        for (int i = 1; i <= n; i++)              //i表示行数,逐行打印
        {
            for (int j = 1; j <= i-1; j++)      //打印第i行的i-1个空格
            {
                printf(" ");
            }
            for (int k = 1; k <= n+1-i; k++)           //打印第i行的n+1-i个*
            {
                printf("* ");
            }
            printf("\n");                   //打印完一行,输出换行符
        }
    }
}


发表于 2023-02-26 16:15:06 回复(0)
#include <stdio.h>
int main() {
    int n, i, j;
    while (scanf("%d", &n) != EOF) {
        for (i = n; i >= 1; i--) {
            for (j = 1; j <= n; j++) {
                if (j > n - i)
                    printf("* "); 
                else
                    printf(" ");
            }
            printf("\n");
        }
    }
    return 0;
}
发表于 2022-09-28 21:08:37 回复(0)
#include<stdio.h>
int main()
{
    int n;
    while(~scanf("%d",&n))
    {                                        /*自己的错误演示*/
        for(int j=1;j<(n+1);j++)//for(int j=0;j<=n;j++)就不行,j=0的话,上一组输出 与 下一组输出 间 会空一行
        {
            for(int i=0;i<j-1;i++)//for(int i=1;i<=j;i++)第一行也会有一个空格。
                printf(" ");
            for(int i=n-j+1;i>0;i--)//for(int i=n-j;i>0;i--)会少掉最上面一行。
                printf("* ");
            printf("\n");
        }
    }
    return 0;
}

发表于 2022-09-12 12:24:06 回复(0)