列表

详情


BC111. 空心正方形图案

描述

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”正方形图案。

输入描述

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

输出描述

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

示例1

输入:

4

输出:

* * * * 
*     * 
*     * 
* * * * 

示例2

输入:

5

输出:

* * * * * 
*       * 
*       * 
*       * 
* * * * * 

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 184KB, 提交时间: 2021-09-08

#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 == 0 || i == n-1 || j == 0 || j == n-1)
                printf("* ");
                else
                printf("  ");
            }
            printf("\n");
        }
    }
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 188KB, 提交时间: 2022-07-17

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

    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 192KB, 提交时间: 2022-07-17

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

C 解法, 执行用时: 1ms, 内存消耗: 192KB, 提交时间: 2021-12-14

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

C 解法, 执行用时: 1ms, 内存消耗: 196KB, 提交时间: 2022-05-01

#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==0 || i==n-1 || j==0 || j==n-1)
                    printf("* ");
                else
                    printf("  ");
            }
            printf("\n");
        }
    }
    return 0;
}

上一题