这道题意思是给一个矩形的长和宽,输出这个矩形。有趣的是,输出的这个矩形长宽实际占位会各比题目输入的长宽多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;
}
第二种:
定义一个二维字符数组,根据长和宽往数组里面赋值。
代码如下:
#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;
}