gpt4 book ai didi

c - 为什么我使用 gotoxy(x,y) 时没有打印第一列

转载 作者:行者123 更新时间:2023-12-03 09:55:38 25 4
gpt4 key购买 nike

所以我正在建立一个带边界的 map 并用'*'填充
现在我想要做的是清空所有的 ' * ' 并用空格填充它们。
我没有得到预期的输出,也无法弄清楚我做错了什么,如果有人能帮助我,我将不胜感激。

#include <stdio.h>
#define gotoxy(x,y) printf("\033[%d;%dH", (y), (x))


int height=5;
int width=5;

void fill_blank_spaces()
{
gotoxy(0,0);
for(int i=0;i<height;i++)
{
for(int j=0;j<width;j++)
{ if(i!=0 && j!=0 && i!=height-1 && j!=width-1)
printf(" ");
}
printf("\n");
}
}
我希望输出是:
X---X
| |
| |
| |
X---X
但显示的输出是:
X---X
*|
*|
*|
X---X
int main()
{
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
if ((i == 0 && j == 0) || (i == 0 && j == width - 1) || (j == 0 && i == height - 1) || (j == width - 1 && i == height-1))
printf("X");
else if ((j == 0) || (j == width - 1))
printf("|");
else if (i == height - 1 || i == 0)
printf("-");
else
printf("*") ;
}
printf("\n");
}
fill_blank_spaces();
}
我是新来的,所以请原谅我非常规的描述。

最佳答案

左上角是( 1, 1) .
以下行的第一个空格应输入( 2, 2) , ( 2, 3)( 2, 4)

#include <stdio.h>
#define gotoxy(x,y) printf("\033[%d;%dH", (y), (x))

int height=5;
int width=5;

void fill_blank_spaces()
{
for ( int i = 1; i < height - 1; i++)
{
for ( int j = 1; j < width - 1; j++)
{
gotoxy ( j + 1, i + 1);
printf ( " ");
}
}
printf ( "\n");
printf ( "\n");
}

int main ( void)
{
gotoxy ( 1, 1);
for ( int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
if ((i == 0 && j == 0) || (i == 0 && j == width - 1) || (j == 0 && i == height - 1) || (j == width - 1 && i == height-1))
printf("X");
else if ((j == 0) || (j == width - 1))
printf("|");
else if (i == height - 1 || i == 0)
printf("-");
else
printf("*") ;
}
printf("\n");
}
fill_blank_spaces();
}

关于c - 为什么我使用 gotoxy(x,y) 时没有打印第一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65374844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com