首页 > 试题广场 >

空心三角形图案

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

输入描述:
多组输入,一个整数(3~20),表示输出的行数,也表示组成三角形边的“*”的数量。


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

输入

4

输出

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

输入

5

输出

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

for(j=1;j<=(2*n-1);++j)
{
if((j==1)||((i==n)&&((j%2)!=0))||(j+1==2*i))
printf("*");
else
 printf(" ");

}
printf("\n");
}

}
    return 0;
}
发表于 2024-08-24 20:39:17 回复(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 < n; j++)
            {
                if (i == j)
                {
                    printf("* ");
                }
                else if (i >= 0 && i < n && j == 0)
                {
                printf("* ");
                }
                else if (j >= 0 && j < n && i == n-1)
                {
                    printf("* ");
                }
                else
                {
                printf("  ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}
发表于 2024-08-07 20:55:38 回复(0)
#include <stdio.h>

int main() {
   int n;
   while(~scanf("%d",&n))
   {
    for(int i=1;i<=n;i++)
    {
        if(i!=n)
        {
            for(int j=1;j<=i;j++)
            {
                if(j==i||j==1)
                printf("* ");
                else
                printf("  ");
            }
        }
        else
        {
            for(int z=1;z<=n;z++)
            printf("* ");
        }
        printf("\n");
    }
   }
    return 0;
}
发表于 2024-08-04 12:24:31 回复(0)
int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        for (int i = 0; i < n; i++) {
            if (i < 2 || i == n - 1) {
                for (int j = 0; j < i + 1; j++) {
                    printf("* ");
                }
                printf("\n");
            }
            else {
                printf("* ");
                for (int j = 0; j < i - 1; j++) {
                    printf("  ");
                }
                printf("*\n");
            }
        }
    }

    return 0;
}

发表于 2024-08-03 11:30:00 回复(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++)
            {
                if(j == 0 || j == i || i == n - 1)
                    printf("* ");
                else
                    printf("  ");
            }
            printf("\n");
        }
    }
    return 0;
}

发表于 2024-06-21 01:21:06 回复(0)
/*思路 : 由题目示例可以看出 可以由一个正方形砍去一半 所表示出来
i为行 j为列
当i==j的时候 就可以打印出一个星星加一个空格
当j 列为0 的时候 就可以打印出一列
当i==n-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;
            //控制多少列
            for(int j = 0; j<n;j++)
            {
                //条件判断 i==j j==0 i==n-1
                if (i==j||j==0||i==n-1) 
                {
                    printf("* ");
                }
                else 
                {
                    printf("  ");
                }
            }
            printf("\n");
            
        }
    }
    return 0;
}

发表于 2024-06-02 15:15:13 回复(0)
#include <stdio.h>

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

        //最后一行
        for (int i=0; i<a; i++)
        {
            printf("* ");
        }
        printf("\n");    
    }
    return 0;
}
发表于 2024-05-08 22:32:59 回复(0)
#include <stdio.h>

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

    }
    return 0;
}
发表于 2024-04-20 13:31:29 回复(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 < n; j++)//控制列
            {
                if (j == 0 || i == n - 1 || j == i)
                {
                    printf("* ");
                }
                else
                {
                    printf("  ");
                }
            }
            printf("\n");
        }
    }

    return 0;
}

发表于 2024-03-19 13:23:21 回复(0)
#include <stdio.h>

int main()
{
    int n;
    while (scanf("%d", &n) != EOF)
    {
        //用第一层for循环实现n行。
        for(int i = 1; i <= n; i++)
        {
            //第二层for循环实现每行输出,每行都比上一行多一个位置。
            for(int j = 1; j <= i; j++)
            {
                //如果是第一行或最后一行,一直打印* 。
                if((i == 1) || (i == n)){
                    printf("* ");
                }
                //其他行。
                else{
                    //在第一个和最后一个位置打印* 。
                    if((j == 1) || (j == i)){
                        printf("* ");
                    }
                    //其他位置打印两个空格。
                    else{
                        printf("  ");
                    }
                } 
            }
            printf("\n");//每一行结束后换行。
        }
    }
    return 0;
}

编辑于 2024-02-22 10:16:23 回复(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<=y; x++){
                if(x==1 || x==y){
                    printf("* ");
                }else if(y==n){
                    printf("* ");
                }else{
                    printf("  ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}
编辑于 2024-01-29 20:45:34 回复(0)
#include <stdio.h>
int main() {
    int num;
    while (scanf("%d", &num) != EOF) {
        for (int i = 0; i < num; i++) {
            for (int j = 0; j < i + 1; j++) {
                if (j == 0 || j == i || i == num - 1) {
                    printf("* ");
                } else {
                    printf("  ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}

发表于 2023-12-26 15:26:32 回复(0)
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
    int n = 0;
    while (scanf("%d", &n) != -1)
    {
        printf("*\n");
        for (int i = 0; i < n - 2; i++)
        {
            int a = i;
            printf("* ");
            while (a)
            {
                printf("  ");
                a--;
            }
            printf("*\n");
        }
        while (n)
        {
            printf("* ");
            n--;
        }
        printf("\n");
    }
    return 0;
}
编辑于 2023-12-05 10:25:41 回复(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++) 
            {
                int b = j;
                if(i>=2&&i<n-1&&j>=1&&j<i)
                {
                    printf("  ");
                }
                else 
                {
                    printf("* ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}

发表于 2023-11-13 21:36:58 回复(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 <= i; j++) {
                if (0 == j || i == j || i == n - 1) {
                    printf("* ");
                } else {
                    printf("  ");                    
                }
            }
            printf("\n");
        }
    }
    return 0;
}


编辑于 2023-09-11 16:47:56 回复(0)
#include <stdio.h>

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

发表于 2023-09-03 15:01:25 回复(0)
#include <stdio.h>

int main()
{
    int n = 0;
    int i = 0;
    int j = 0;

    while (~scanf("%d", &n))
    {
        for (i = 0; i < n; i++)
        {
            for (j = 0; j < n; j++)
            {
                if (i == j || j == 0 || i == n - 1)
                {
                    printf("* ");
                }
                else
                    printf("  ");
            }
            printf("\n");
        }
    }

    return 0;
}
发表于 2023-06-01 20:57: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 <=i; j++) {
				if (i==j||j==0||i==n-1) {
					printf("* ");
				}
				else
				{
					printf("  ");
				}
			}
			printf("\n");
		} 
    }
	return 0;
萌新,掌握的不熟,把图案换成数字打印出来就知道那里要相等才打印字符了
发表于 2023-04-04 15:10:29 回复(0)
#include <stdio.h>

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

发表于 2023-03-11 16:48:09 回复(0)
#include <stdio.h>

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

    }
    return 0;
}
发表于 2023-03-02 10:01:52 回复(0)