C/C++算法入门 | 图形输出

不爱生姜不吃醋⭐️
如果本文有什么错误的话欢迎在评论区中指正
与其明天开始,不如现在行动!

文章目录

  • 前言
  • 图形输出
    • 1.题目(PAT B1036)
    • 2.思路
    • 3.代码实现
  • 总结


前言

在有些题目中,题目会给定一些规则,需要考生根据规则来进行画图。所谓画图,其实是由若干字符组成的,因此只需要弄清楚 规则就能编写代码。这种题目的做法一般有两种:

  • 通过规律,直接进行输出。
  • 定义一个二维字符数组,通过规律填充之,然后输出整个二维数组。

下面来看一个例子。


图形输出

1.题目(PAT B1036)

题目描述

美国总统奥巴马不仅呼吁所有人都学习编程,甚至亲自编写代码,成为美国历史上首位编写计算机代码的总统。2014年低,为庆祝“计算机科学教育周”正式启动,奥巴马编写了一个简单的计算机程序——在屏幕上画一个正方形。现在你也跟他“一起”编程吧!

输入格式

在一行中给出正方形边长N,N∈【3,20】和组成正方形边的某种字符C,间隔一个空格。

输出格式

由给定字符C画出正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,所输出的行数实际上是列数的50%(四舍五入取整)

输入样例

10 a

输出样例
C/C++算法入门 | 图形输出_第1张图片

2.思路

  1. 首先先根据列数算出行数(列数的一半,再四舍五入)
  2. 输出分为两部分:
  3. 第一行和最后一行:直接按照长度打印
  4. 中间的:只打印第一个和最后一个,中间用空格隔开

3.代码实现

#include 

int main() {
    int n;
    char c;
    scanf("%d %c", &n, &c);
    int index = 0;
    if(n % 2 >= 5){
        index = n / 2 + 1; 
    }else{
        index = n / 2;
    }

    for (int i = 0; i < index; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (i == 0 || i == index - 1){
                printf("%c", c);
            }else{
                if(j == 0 || j == n - 1) {
                    printf("%c", c);
                }else{
                    printf(" ");
                }
            }
        }
        printf("\n");
    }

    return 0;
}

总结

文章中代码的编写使用的都是C/C++基础知识,多加练习熟能生巧。
本文中若是有出现的错误请在评论区或者私信指出,我再进行改正优化,如果文章对你有所帮助,请给博主一个宝贵的三连,感谢大家!!!


你可能感兴趣的:(C/C++算法,c语言,c++,算法)