首页 > 试题广场 >

菱形图案

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

输入描述:

多组输入,一个整数(2~20)。



输出描述:

针对每行输入,输出用“*”组成的菱形,每个“*”后面有一个空格。

示例1

输入

2

输出

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

输入

3

输出

   * 
  * * 
 * * * 
* * * * 
 * * * 
  * * 
   * 
示例3

输入

4

输出

    * 
   * * 
  * * * 
 * * * * 
* * * * * 
 * * * * 
  * * * 
   * * 
    * 
#include<stdio.h>
int main()
{
	//多组输入
	int n = 0;
	while ((scanf("%d", &n) != EOF))
	{
		int i = 0;
		int j = 0;
		
		//上面的三角
		for (i = 0;i < n;i++)
		{
			for (j = 0;j < n - i;j++)
			{
				printf(" ");
			}
			for (j = 0;j < i + 1;j++)
			{
				printf("* ");
			}
			printf("\n");
		}
		
		//中间的一横
		for (i = 0;i < n + 1;i++)
		{
			printf("* ");
		}
		printf("\n");

		//下面的三角
		for (i = 0;i < n;i++)
		{
			for (j = 0;j < i + 1;j++)
			{
				printf(" ");
			}
			for (j = 0;j < n-i;j++)//每行打印的*逐行递减
			{
				printf("* ");
			}
			printf("\n");
		}
	}
	return 0;
}

发表于 2022-08-08 16:16:46 回复(0)
#include <stdio.h>

void main(){
    int line = 0;
    scanf("%d",&line);
    //up
    for(int i = 0;i<line;i++){
        //block
        for(int j = 0;j<line-i-1;j++){
            printf(" ");
        }
        //*
        for(int j = 0;j<2*i+1;j++){
            printf("*");
        }
        puts("");
    }
    //down
    for(int i = 0;i<line-1;i++){
        //block
        for(int j = 0;j<=i;j++){
            printf(" ");
        }
        //*
        for(int j = 0;j<2*(line-i-1)-1;j++){
            printf("*");
        }
        puts("");
    }
}
发表于 2022-01-02 11:13:09 回复(0)