使用垂体,扩展的ASCII字符绘制用于用户定义尺寸的矩形

时间:2018-08-30 14:54:52

标签: c

我做了一部分,但似乎无法获得整个矩形。有人可以指出我在做什么错吗?

这是我的代码:

printf("Enter the length and width of the rectangle : ");
scanf("%d%d",&length,&width);


printf("\n%c", 218);
for(i=1;i<=length;i++)
{
        printf("%c",196);

}

printf("%c",191);


 for(j=1;j<=width;j++)
 {
     printf("\n");
     printf("%c",179);
 }
    printf("\n");
    printf("%c", 192);

     for(i=1;i<=length;i++)
{
        printf("%c",196);

}

printf("%c", 217);

return 0;

My output

3 个答案:

答案 0 :(得分:0)

您仅打印第一列,而不是第二列。 一种方法是在整个矩形上循环并检查您是否在边缘。

#include <stdio.h>

int main()
{
    int length, width, i, j;

    printf("Enter the length and width of the rectangle : ");
    scanf("%d%d",&length, &width);

    for(i=0;i<width;i++)
    {
        for(j=0;j<length;j++)
        {
            if( j==0 || j==length-1 || i==0 || i==width-1 )
            {
                printf("%c", '*');
            }
            else
            {
                printf(" ");
            }
        }
        printf("\n");
    }

    return 0;
}

答案 1 :(得分:0)

在您的中间循环中,您只打印一个垂直条,然后转到下一行。

您需要打印一次条形,然后添加另一个循环以打印空格,然后再打印一个条形:

  for(j=1;j<=width;j++)
  {
     printf("\n");
     printf("%c",179);
     for (i=1;i<=length;i++) {
       printf(" ");
     }
     printf("%c",179);
  }

答案 2 :(得分:0)

#include <stdio.h>
#include <stdlib.h>

int main()
{
int length, width,i,j;
   printf("Enter the length and width of the rectangle : ");
   scanf("%d%d",&length,&width);


printf("\n%c", 218);
for(i=1;i<=length;i++)
{
    printf("%c",196);

 }

   printf("%c",191);


    for(j=1;j<=width;j++)
 {
 printf("\n");
 printf("%c",179);
 for (i=1;i<=length;i++) {
   printf(" ");
 }
  printf("%c",179);
  }
    printf("\n");
    printf("%c", 192);

  for(i=1;i<=length;i++)
   { 
    printf("%c",196);

    }

 printf("%c", 217);

  return 0;
 }