42:画矩形
总时间限制:
1000ms
内存限制:
65536kB
描述
根据参数,画出矩形。
输入
输入一行,包括四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少于5列不多于10列);第三个参数是一个字符,表示用来画图的矩形符号;第四个参数为1或0,0代表空心,1代表实心。
输出
输出画出的图形。
样例输入
7 7 @ 0
样例输出
@@@@@@@
@ @
@ @
@ @
@ @
@ @
@@@@@@@
解法1:
#include<cstdio>
int main()
{
int h,l,c,p;
scanf("%d %d %c %d",&h,&l,&c,&p);//空格也算是字符,所以%d之间要用空格隔开,否则%c读取的是空格
if(p == 1)
{
for(int i = 1; i <= h; ++i)
{
for(int j = 1; j <= l; ++j)
{
printf("%c",c);
}
printf("\n");
}
}
else
{
for(int i = 1; i <= h; ++i)
{
for(int j = 1; j <= l; ++j)
{
if(i!=1 && i!=h && j!=1 && j!=l)//当不是第一行最后一行,第一列最后一列时,输出空格
{
printf(" ");
}
else
printf("%c",c);
}
printf("\n");
}
}
return 0;
}
解法2:
#include<cstdio>
int main()
{
int h,l,c,p;
scanf("%d %d %c %d",&h,&l,&c,&p);//空格也算是字符,所以%d之间要用空格隔开,否则%c读取的是空格
for(int i = 1; i <= h; ++i)
{
for(int j = 1; j <= l; ++j)
{
if(p==1)
{
printf("%c",c);
}
else
{
if(i!=1 && i!= h && j!=1 && j!=l)
{
printf(" ");
}
else
printf("%c",c);
}
}
printf("\n");
}
return 0;
}
解法3:
#include<cstdio>
int main()
{
int h,l,c,p;
scanf("%d %d %c %d",&h,&l,&c,&p);//空格也算是字符,所以%d之间要用空格隔开,否则%c读取的是空格
for(int i = 1; i <= h; ++i)
{
for(int j = 1; j <= l; ++j)
{
if(!p && i!=1 && i!= h && j!=1 && j!=l)
{
printf(" ");
}
else
printf("%c",c);
}
printf("\n");
}
return 0;
}
反思:这个题在用scanf做的时候要特别注意字符输入的问题,如果 scanf(“%d %d %c %d”,&h,&l,&c,&p);%d%d%c%d之间如果不加空格,到时候输入数据的时候%c读取的就是空格,就会导致程序出错。
以后调试的时候,记得要多断点输出,容易查找错误。
还没有评论,来说两句吧...