1097:画矩形时间限制: 1000 ms 内存限制: 65536 KB 提交数: 35835 通过数: 21294 【题目描述】根据参数,画出矩形。输入四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少于5列不多于10列);第三个参数是一个字符,表示用来画图的矩形符号;第四个参数为1或0,0代表空心,1代表实心。 【输入】输入一行,包括四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少于5列不多于10列);第三个参数是一个字符,表示用来画图的矩形符号;第四个参数为1或0,0代表空心,1代表实心。 【输出】输出画出的图形。 【输入样例】7 7 @ 0 【输出样例】@@@@@@@ @ @ @ @ @ @ @ @ @ @ @@@@@@@ |
本题库与《信息学奥赛一本通(C++版)》(科学技术文献出版社)配套,版权及相关事宜请与本书作者联系,本网站不作解答。
本网站属公益、非盈利性质,不涉及与书相关的商业活动,后期可能适当收取费用以支持网站的运行维护。
目前因个人编写水平有限,网站维护、网站安全方面及部分功能的开发尚不成熟,如遇疑问,请通过版主信箱联系。
感谢成都石室中学Wuvin、Qizy、Xehoth三位同学对本网站的支持,特别鸣谢北京师范大学ACM前校队易超、唐巧、洪涛同学。
版主信箱:ybt_mail@126.com
这题是一题比较有一点挑战性的那种循环嵌套题型(对于初学者们而言),但是不论如何,我个人的答案里面是只有双重循环的。这个矩形只需要分两种情况讨论·,如果第四参数(即我定义的c)是一的话整个程序就会很简单,不过这里还有一个空心的情况。
第四参数是零的话,需要先输出一行,先输出一个字符和宽参数-2个空格,再输出一个字符,循环操作高参数-2次以后,再输出一整行。
整个程序以分支结构来写,以下代码是可以提交的:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c;
char op;
cin>>a>>b>>op>>c;
if(c==1){
for(int i=1;i<=a;i++){
for(int j=1;j<=b;j++)
cout<<op;
cout<<endl;
}
}
else {
for(int i=1;i<=b;i++)
{
cout<<op;
}
cout<<endl;
for(int j=1;j<=a-2;j++)
{
cout<<op;
for(int k=1;k<=b-2;k++)
cout<<" ";
cout<<op<<endl;
}
for(int i=1;i<=b;i++)
cout<<op;
}
return 0;
}
就到这里了,886~(・ω<) てへぺろ(wink)