根据参数,画矩形

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

输入格式:

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

输出格式:

输出画出的图形。

输入样例:

在这里给出一组输入。例如:

7 7 @ 0

输出样例:

在这里给出相应的输出。例如:

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

#include <stdio.h>
#include<math.h> 
int main()
{
	int k,g,f;
	char c;
	int i,j,h;
	int a[10000];
	scanf("%d %d %c %d",&g,&k,&c,&f);//g=高,k=宽; 
	for(i=1;i<=g;i++)//一行一行打印; 
	{
		if(i==1||i==g)
		{
			for(j=1;j<=k;j++)
			{
				printf("%c",c);//第一行和最后一行打满;有k个; 
				if(j==k)
				{
					printf("\n");
				}
			}
		}
		else//再打其他行; 
		{
			if(f==0)
			{
				printf("%c",c);
				for(h=1;h<=k-2;h++)
				{
					printf(" ");
				}
				printf("%c\n",c);
			}
			if(f==1)
			{
				for(h=1;h<=k;h++)
				{
					printf("%c",c);
				}
				printf("\n");
			}
		}
		
	} 
  
  
  	return 0;
}
在C语言中,根据参数矩形可通过嵌套循环实现。具体步骤为接收矩形、宽、图符号以及实心或空心的标识作为输入参数,再依据标识情况进行不同处理。若标识为空心,仅在矩形的边框(第一行、第一列、最后一行、最后一列)打印符号,其余位置打印空格;若标识为实心,则整个矩形区域都打印符号。 以下是几种实现该功能的代码示例: 示例代码1: ```c #include<stdio.h> int main(){ int x,y,n,i,j; char z; scanf("%d %d %c %d",&x,&y,&z,&n); //按要求输入 if(n==0){ //空心的情况 for(i=1;i<=x;i++){ //总共几行 for(j=1;j<=y;j++){ //总共几列 if(i==1||i==x||j==1||j==y) //除了第一行第一列最后一行最后一列要打符号,其余输空格 printf("%c",z); else printf(" "); } printf("\n"); //每一行输完换行 } } else //实心的情况 for(i=1;i<=x;i++){ for(j=1;j<=y;j++){ //因为实心所以全打符号就行 printf("%c",z); } printf("\n"); } return 0; } ``` 此代码先接收输入、宽、符号和实心空心标识,接着依据标识判断是空心还是实心矩形,然后使用嵌套循环输相应矩形[^2]。 示例代码2: ```c #include<stdio.h> int main() { char c; int a,b,flag,i,j; scanf("%d %d %c %d",&a,&b,&c,&flag); //flag表示是实心还是空心 if(flag==0){ //空心 for(i=0;i<a;i++){ for(j=0;j<b;j++){ if(i==0||i==a-1){ //第一行和最后一行全部打印字符 printf("%c",c); } else if(j==0||j==b-1){ //第一列和最后一列全部打印字符 printf("%c",c); } else printf(" "); //打印空格 } printf("\n"); } } if(flag==1){ //实心,全部打印字符就行 for(i=0;i<a;i++){ for(j=0;j<b;j++){ printf("%c",c); } printf("\n"); } } return 0; } ``` 该代码同样接收输入参数根据`flag`值判断矩形类型,利用嵌套循环打印矩形,当`flag`为0时打印空心矩形,为1时打印实心矩形[^3]。 示例代码3: ```c #include <stdio.h> int main() { int a, b, flag, i, j; //,宽,flag表示实心还是空心 char c; //字符 scanf("%d %d %c %d", &a, &b, &c, &flag); if (flag == 0) { //空心 for (i = 1; i <=a; i++) { for (j = 1; j <= b; j++) { if (i == 1 || i == a || j == 1 || j == b) { //第一行、第一列和最后一行,最后一列全部打印 printf("%c", c); } else { printf(" "); //其余打印空格 } } printf("\n"); //注意:每一行输后换行 } } else { // 即flag == 1,实心,全部打印字符就行 for (i = 1; i <= a; i++) { for (j = 1; j <=b; j++) { printf("%c", c); } printf("\n"); //每一行输完换行 } } return 0; } ``` 该代码逻辑与两个类似,通过判断`flag`值,使用嵌套循环完成空心或实心矩形的绘制[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值