用c语言画矩形
问题描述:输入:输入一行,包括四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少于5列不多于10列);第三个参数是一个字符,表示用来画图的...
问题描述:
输入:
输入一行,包括四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少于5列不多于10列);第三个参数是一个字符,表示用来画图的矩形符号;第四个参数为1或0,0代表空心,1代表实心。
输出:
输出画出的图形。
请大神看看我哪里错了(这是输入空心矩形的部分)
以下是程序:
#include<stdio.h>
#include<string.h>
int main(){
int x,y,z;
char c;
char a[100][100];
int m,n;
scanf("%d %d %c %d",&x,&y,&c,&z);
if(x>=3&&x<=10&&y>=5&&y<=10)
{
if(z==1)
for(m=0;m<x;m++)
{
for(n=0;n<y;n++)
printf("%c",c);
printf("\n");
}
if(z==0)
{
for(m=0;m<y;m++){
printf("%c",c);}
printf("\n");
for(n=2;n<=x;n++){
printf("%c",a[n][1]=c);
printf("%c",a[n][y]=c);
printf("\n");
}
for(m=0;m<y;m++)
{
printf("%c",c); }
}
}
return 0;
} 展开
输入:
输入一行,包括四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少于5列不多于10列);第三个参数是一个字符,表示用来画图的矩形符号;第四个参数为1或0,0代表空心,1代表实心。
输出:
输出画出的图形。
请大神看看我哪里错了(这是输入空心矩形的部分)
以下是程序:
#include<stdio.h>
#include<string.h>
int main(){
int x,y,z;
char c;
char a[100][100];
int m,n;
scanf("%d %d %c %d",&x,&y,&c,&z);
if(x>=3&&x<=10&&y>=5&&y<=10)
{
if(z==1)
for(m=0;m<x;m++)
{
for(n=0;n<y;n++)
printf("%c",c);
printf("\n");
}
if(z==0)
{
for(m=0;m<y;m++){
printf("%c",c);}
printf("\n");
for(n=2;n<=x;n++){
printf("%c",a[n][1]=c);
printf("%c",a[n][y]=c);
printf("\n");
}
for(m=0;m<y;m++)
{
printf("%c",c); }
}
}
return 0;
} 展开
2个回答
展开全部
每行起始和结束字符均是你的第3个参数
矩形第1行和最后一行中间是第3个参数,其他行根据第4个参数决定是空格或者第3个参数
程序可以这样写:
...
for ( m=0;m<a;m++ )
{
printf("%c",c); //第1列
if ( m==0 || m==a-1 ) //第1行和最后一行
for ( n=1;n<b-1;n++ ) printf("%c",c);
else //中间的行
for ( n=1;n<b-1;n++ ) if ( d==0 ) printf(" "); else printf("%c",c); //空心或否
printf("%c\n",c); //最后1列
}
或者可以写:
for ( m=0;m<a;m++ )
{
printf("%c",c); //第1列
if ( m==0 || m==a-1 || d!=0) for ( n=1;n<b-1;n++ ) printf("%c",c);
else for ( n=1;n<b-1;n++ ) printf(" ");
printf("%c\n",c); //最后1列
}
矩形第1行和最后一行中间是第3个参数,其他行根据第4个参数决定是空格或者第3个参数
程序可以这样写:
...
for ( m=0;m<a;m++ )
{
printf("%c",c); //第1列
if ( m==0 || m==a-1 ) //第1行和最后一行
for ( n=1;n<b-1;n++ ) printf("%c",c);
else //中间的行
for ( n=1;n<b-1;n++ ) if ( d==0 ) printf(" "); else printf("%c",c); //空心或否
printf("%c\n",c); //最后1列
}
或者可以写:
for ( m=0;m<a;m++ )
{
printf("%c",c); //第1列
if ( m==0 || m==a-1 || d!=0) for ( n=1;n<b-1;n++ ) printf("%c",c);
else for ( n=1;n<b-1;n++ ) printf(" ");
printf("%c\n",c); //最后1列
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询