杭电oj 2052

hdoj2052

2052

这道题意思是给一个矩形的长和宽,输出这个矩形。有趣的是,输出的这个矩形长宽实际占位会各比题目输入的长宽多2个单位。
这里有两种做法。
第一种:定义两个字符数组,一个都为"-",另一个都为" ",根据给出的宽一行一行输出。代码如下:

#include "iostream"
using namespace std;
int main()
{
    int n,m,i;
    while(cin>>n>>m)
    {
        char a[75]={'\0'};
        char b[75]={'\0'};
        for(i=1;i<=n;i++)
        {
            a[i]='-';
            b[i]=' ';
        }
            cout<<'+';
        for(i=1;i<=n;i++)
             cout<<a[i];
        cout<<'+'<<'\n';
        while(m--){
             cout<<'|';
               for(i=1;i<=n;i++)
             cout<<b[i];
            cout<<'|'<<'\n';
        }
        cout<<'+';
          for(i=1;i<=n;i++)
           cout<<a[i];
        cout<<'+'<<'\n';
        cout<<'\n';
    }
    return 0;
}
1.png

第二种:
定义一个二维字符数组,根据长和宽往数组里面赋值。

.

代码如下:

#include "iostream"
using namespace std;
int main()
{
    int n,m,i,j;
    while(cin>>n>>m)
    {
        char a[77][77]={'\0'};
        a[0][0]=a[0][n+1]=a[m+1][0]=a[m+1][n+1]='+';
        for(i=1;i<=n;i++)    
            a[0][i]=a[m+1][i]='-';
        for(i=1;i<=m;i++)
            a[i][0]=a[i][n+1]='|';
        for(j=0;j<=m+1;j++)
        {
            if(j>0) cout<<'\n';
            for( i=0;i<=n+1;i++)
                cout<<a[j][i];
        }
        cout<<'\n';
        cout<<'\n';
    }
        return 0;
}
2.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容