关于使用printf函数绘制矩形类的练习

时间:2013-02-09 20:53:07

标签: printf

所以问题如下:

“为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 ("-");
}

但似乎它不会像那样工作,我不能让它显示外(|)行。有人可以帮我这个吗?

3 个答案:

答案 0 :(得分: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

的输出
 ----------
|          |
|          |
|          |
|          |
|          |
 ----------

答案 1 :(得分: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编写的,我只是更改了一些与你匹配的单词。 :)

输出:

-----------
|         |
|         |
|         |
|         |
|         |
|         |
-----------

答案 2 :(得分: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