当前位置: 代码迷 >> C语言 >> [求助]画空心长方形,偶只会画实心的,帮帮忙
  详细解决方案

[求助]画空心长方形,偶只会画实心的,帮帮忙

热度:434   发布时间:2005-10-09 16:06:00.0
[求助]画空心长方形,偶只会画实心的,帮帮忙
编写输入整数n和m(1<=n,m<=15),输出一个用*字符表示的nxm的空心长方形。
以下是n=4,m=5的空心长方形:
* * * * *
*       *
*       *
* * * * *

[此贴子已经被作者于2005-10-9 16:07:09编辑过]


搜索更多相关的解决方案: 长方形  实心  空心  整数  

----------------解决方案--------------------------------------------------------
main()
{
   int i,j,n,m;
   printf("please input n and m:\n");
   scanf("%d%d",&n,&m);
   for(i=0;i<n;i++)
   printf("*");
   printf("\n");
   for(j=1;j<m-1;j++)
   {printf("*");
   for( i=0;i<n-2;i++)
    printf(" ");
     printf("*");
     printf("\n");}
     for(i=0;i<n;i++)
   printf("*");
   printf("\n");
    getch();
}

c语言群9771099
----------------解决方案--------------------------------------------------------
二楼的多了getch();

----------------解决方案--------------------------------------------------------
#include<stdio.h>
void heng(int m)
{int i;
for(i=0;i<m;i++)printf("*");
printf("\n");
}
void lie(int m)
{int i;
printf("*");
for(i=0;i<m-2;i++)
printf(" ");
printf("*");
printf("\n");
}
main()
{int m,n,i;
printf("enter m,n(1<=n,m<=15):\n");
scanf("%d %d",&m,&n);
if(n<1||n>15||m<1||m>15){printf("data error!retry!");scanf("%d %d",&m,&n);}
heng(m);
for(i=0;i<n-2;i++)
lie(m);
heng(m);
getch();
}
----------------解决方案--------------------------------------------------------

这么好玩,我也来 main() { int m, n, i, j;

scanf("%d%d", &m, &n);

for(i=0; i<n; i++) { printf("*"); for(j=1; j<m-1; j++) if (i==0||i==n-1) printf("*"); else printf(" "); printf("*\n"); } } 问下楼上的,怎么你的MSN是126的?我怎么记得没126的啊/


----------------解决方案--------------------------------------------------------
回楼上的,MSN跟126.com没有仇吧?怎么会没有126.com 的捏?嘿嘿,
----------------解决方案--------------------------------------------------------

用二重指针做下试试! #include <stdio.h>

void main() { int m,n; char **p; printf("请输入要显示矩形的长和宽!"); scanf("%d%d",&n,&m); char t[3]={"* "}; p=new char *[m]; for(int i=0;i<m;i++) { p[i]=new char[n]; } for(i=0;i<2;i++) { for(int j=i;j<m-i;j++) { for(int k=i;k<n-i;k++) { p[j][k]=t[i]; } } } for(i=0;i<m;i++) { for(int j=0;j<n;j++) { printf("%c",p[i][j]); } printf("\n"); } delete []p; }


----------------解决方案--------------------------------------------------------
我记得好像循环里的n和m是不能这样在运行的时候输入的我觉得你们这个有点问题,不知道我说的对不对???
----------------解决方案--------------------------------------------------------

#include<stdio.h>

int main() { int m,n; do{ printf("输入n:"); scanf("%d",&n); if(n < 1) printf("n不能小于1\n"); }while(n < 1); do{ printf("输入m:"); scanf("%d",&m); if(m > 15) printf("m不能大于15\n"); }while(m > 15); for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) { if((i > 1) && (i < n)) { if((j > 1) && (j < m)) printf(" "); else printf("* "); if(j == m) printf("\n"); } else { printf("* "); if(j == m) printf("\n"); } } return 0; }


----------------解决方案--------------------------------------------------------
以下是引用本人已死在2005-10-9 20:04:55的发言: 回楼上的,MSN跟126.com没有仇吧?怎么会没有126.com 的捏?嘿嘿,
哦,偶菜,我以为MSN是微软家的东西,以为只有hotmail.com或者msn.com呢~~
----------------解决方案--------------------------------------------------------
  相关解决方案