信息学奥赛一本通C++语言——1097:画矩形

【题目描述】
根据参数,画出矩形。输入四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少于5列不多于10列);第三个参数是一个字符,表示用来画图的矩形符号;第四个参数为1或0,0代表空心,1代表实心。

【输入】
输入一行,包括四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少于5列不多于10列);第三个参数是一个字符,表示用来画图的矩形符号;第四个参数为1或0,0代表空心,1代表实心。

【输出】
输出画出的图形。

【输入样例】
7 7 @ 0
【输出样例】

@@@@@@@
@     @
@ 	  @
@     @
@     @
@     @
@@@@@@@

方法一:

#include<cstdio>
int main(){
	int h,x;
	char ch;
	int z;
	scanf("%d %d %c %d",&h,&x,&ch,&z);
	if(z){
		for(int j=0;j<h;j++){
			for(int i=0;i<x;i++){
				printf("%c",ch);
			}
			printf("\n");
		}
	}else{
		for(int i=0;i<x;i++){//打印第一行,如 @ @ @ @ @ 
			printf("%c",ch);
		}
		printf("\n");//换行 
		for(int j=0;j<h-2;j++){//控制打印行数,h-2 是去掉第一行和最后一行 
			printf("%c",ch);//打印此行第一个 									   
			for(int i=0;i<x-2;i++){	 
				printf(" ");//打印中间的空格 
			}
			printf("%c",ch);//打印此行最后一个
			printf("\n");//换行
		}
		for(int i=0;i<x;i++){//打印最后一行,如 @ @ @ @ @ 
			printf("%c",ch);
		}
	}
	return 0;
}

方法二:

#include<cstdio>
int main(){
	int h,x;
	char ch;
	int z;
	scanf("%d %d %c %d",&h,&x,&ch,&z);
	if(z){//实心 
		for(int j=1;j<=h;j++){
			for(int i=1;i<=x;i++){
				printf("%c",ch);
			}
			printf("\n");
		}
	}else{//空心 
		for(int j=1;j<=h;j++){
			for(int i=1;i<=x;i++){
				if((j==1)||(j==h)||(i==1)||(i==x)){//四边形部分输出符号 
					printf("%c",ch);
				}else{
					printf(" ");//四边形内部输出空格 
				}
			}
			printf("\n");
		} 
	}
	return 0;
}
发布了107 篇原创文章 · 获赞 32 · 访问量 3244

猜你喜欢

转载自blog.csdn.net/weixin_46272402/article/details/104639184
今日推荐