仅使用printf在Objective-C中绘制Z字形图案

时间:2015-08-14 12:27:56

标签: ios objective-c

我坚持使用printf仅在控制台中绘制Z字形图案的练习,输出应为:

       *     * 
      * *   * *
     *   * *   *
    *     *     * 

这是我的代码:

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        int n,i,j;
        printf("Input the height:");
        scanf("%d",&n);
        printf("\n");
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n-i;j++)
                printf(" ");/
            for(j=1;j<=2*i;j++)
            {
                if (j==1||j==2*i-1)
                    printf("*"); 
                else
                    printf (" ");
            }
            printf("\n"); 
            if (i==n) {
                for(j=1; j<=n;j++)
                    printf (" ");
                break ;
            }
        }
    }
}
像这样。我试图绘制三角形的两边,但仍然不知道如何绘制。

1 个答案:

答案 0 :(得分:1)

将2D数组用作虚拟屏幕

int n,i,j,d;
printf("Input the height:");
scanf("%d",&n);
int width = (n-1)*4+1;
char vscreen[n][width+1];
memset(vscreen, ' ', sizeof vscreen);
for(i=0; i < n; ++i)
    vscreen[i][width] = 0;

for(j=i=0, d=-1; i < width; ++i, j += d){
    vscreen[j][i] = '*';
    if(j == n - 1 || j == 0)
        d = -d;
}
printf("\n");
for(i=n-1;i>=0;--i)
    printf("%s\n", vscreen[i]);