我坚持使用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 ;
}
}
}
}
像这样。我试图绘制三角形的两边,但仍然不知道如何绘制。
答案 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]);