在c中的while循环中给出2个输出

时间:2016-08-16 09:46:44

标签: c while-loop do-while

我试图编写一个代码而不是使用goto,我写了这个。 当我运行此代码时:

int main()
{
    int a;
    printf ("1 or 2");
    scanf ("%d", &a);
    if (a == 1)
    {
        return card();
    }
    else
        return computer();
}

int computer(void)
{
    char c;
    int f = 0 ;
    do
    {
        printf ("choose y or n\n");
        scanf ("%c", &c);

        switch (c)
        {
            case 'y':
                card();
                break;
            case 'n':
                main();
                break;
        }

    }
    while(f<1);

    return 0;
}
int card(void)
{
    char d;
    int e = 1;
    do
    {
        printf ("chhose y or n2\n");
        scanf ("%c", &d);

        switch (d)
        {
            case 'y':
                computer();
                break;
            case 'n':
                main();
                break;
        }
    }
    while(e<2);

    return 0;
}

它的出局就像:

1 or 2 2
choose y or n
choose y or n

第二次打印相同的东西。我试图改变while循环的不同样式或算法,但我找不到有用的解决方案。我真的很擅长编码所以我真的没有想法

0 个答案:

没有答案