1

所以问题如下:

“为 Rectangle 类编写一个名为 draw 的方法,该方法使用破折号和竖线字符绘制一个矩形。以下代码序列

Rectangle *myRect = [[Rectangle alloc]init];
[myRect setWidth : 10 andHeight : 3];
[myRect draw];

将产生以下输出:“

(我无法向您展示图片,但它是由“-”破折号和“|”条形字符组成的矩形。破折号用于宽度,条形字符用于高度。)

我已经开始做这样的方法:

{
int n;

for ( n = 1 ; n <= self.width ; ++n)
    printf ("-");

for ( n = 1 ; n <= self.height ; ++n){
    printf ("\n|");
        }
    printf("\n");

for ( n = 1 ; n <= self.width ; ++n){
    printf ("-");
}

但它似乎不会那样工作,我无法让它显示外部 (|) 行。有人可以帮我解决这个问题吗?

4

3 回答 3

0

我相信您正在使用 Objective-C,但这里有一组简单的代码,我在 C 中测试过,应该很容易翻译:

void printRectangle(int width, int height)
{
     int n;
     int z;

     printf(" ");

     for (n = 1 ; n <= width ; n++)
        printf ("-");

     printf("\n");

     for ( n = 1 ; n <= height ; n++)
     {
        printf ("|");

        for(z = 1; z <= width; z++)
             printf(" ");

        printf("|\n");
     }

     printf(" ");

     for ( n = 1 ; n <= width ; ++n)
         printf ("-");

     printf("\n");
}

输出宽度 = 10,高度 = 5

 ----------
|          |
|          |
|          |
|          |
|          |
 ----------
于 2013-02-09T21:06:19.413 回答
0

抱歉,我没有看到上面接受的答案。但是,我会留下这个以防万一。

我还没有在目标 C 中测试过它。但是试一试:)

for (int y = 0; y <= self.width; y++) {
    for (int x = 0; x <= self.width; x++) {
        if (x == 0 || y == 0 || x == self.width || y == self.height) {
            if (y == 0 || y == self.height) {
                printf("-");
            }
            else if (x == 0 || x == self.width) {
                printf("|");
            }
            if (x == 10) {
                printf("\n");
            }
        } else {
            printf(" ");
        }
    }
  }

这是用java编写的,我只是更改了一些单词以匹配您的单词。:)

输出:

-----------
|         |
|         |
|         |
|         |
|         |
|         |
-----------
于 2013-02-09T21:07:22.817 回答
0
//  Created by Victor Diaz  on 11/10/13.
//  Copyright (c) 2013 Victor Diaz . All rights reserved.
//  lines of code are submitted but  i have just inputed here the function draw

-(void)draw{
    int i=0;
    printf(" ");
    for(i=0; i<=width;i++){
        printf("-");
    }
    printf("\n");
    for(i=0;i<=height;i++){
        printf("|");
        for (int z=0; z<width; z++)
            printf(" ");
            printf(" |\n");
    }
    printf(" ");
    for (i=0; i<=width; i++) {
        printf("-");
    }
    printf("\n");
}
@end
于 2013-11-17T16:19:23.047 回答