谁来看看我哪里搞错了


#include
#include
#include
#include
#include
#define ROW 25
#define COL 100
int main()
{
    char a[ROW][COL];//图形显示col为x轴,row为y轴。则表示a[y][x]。
    for (int i = 0; i < ROW; i++)
    {
        for (int j = 0; j < COL; j++)
            a[i][j] = '*';
    }
    //绘制圆形
    char jg;
    do
    {
        printf("是否继续绘制圆形\n");
        scanf("%c", &jg);
        printf("请输入圆的相关系数\n");
        int d, e, f;
        scanf("%d%d%d", &d, &e, &f);
        for (int i = 0; i < ROW; i++)
        {
            for (int j = 0; j < COL; j++)
                if (pow(j, 2) + pow(i, 2) + d * j + e * i + f == 0)
                {
                    a[i][j] = ' ';
                }
        }
        for (int i = 0; i < ROW; i++)
        {
            for (int j = 0; j < COL; j++)
                printf("%c", a[i][j]);
            printf("\n");
        }
    } while (jg == 'Y');
}

img


为什么第二次循环跳过jg变量的输入。

do while是先执行一次循环体再判定条件是否成立,如果成立再执行一次循环体,所以这段程序下来执行的顺序是:1.你输入了系数,2.执行了循环体内程序,3.判定你输入的系数是否成立,4.成立了,执行循环体内程序

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^