PAT 乙级 1036 跟奥巴马一起编程

输入打印正方形本身没有难度,这个题的要点是输出的行数实际上是列数的50%(四舍五入取整),如何实现四舍五入是一个问题,当时我想了半天都没有特别好的办法,后来去网上找找到了

double f;
//x就是四舍五入的结果
int x=(int)(f+0.5);

之后就是直接打印正方形了

#include <iostream>

using namespace std;

void print(char c,int n);

int main()
{
    int x;
    char c;
    cin>>x;
    getchar();
    cin>>c;
    print(c,x);
}

void print(char c,int n)
{
    for(int i=0;i<n;i++)
        cout<<c;
    cout<<endl;
    int x=(int)((double)(n)/2+0.5);
    for(int i=0;i<x-2;i++)
    {
        cout<<c;
        for(int j=0;j<n-2;j++)
            cout<<" ";
        cout<<c<<endl;
    }
    for(int i=0;i<n;i++)
        cout<<c;
}

我会一直继续下去,我会一直在路上!

猜你喜欢

转载自www.cnblogs.com/FDProcess/p/9231298.html
今日推荐