Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C游戏没有结束_C - Fatal编程技术网

C游戏没有结束

C游戏没有结束,c,C,我写了一个简单的barbut游戏。 我想学点东西,如果我考上42分的话。线路;当比赛结束时,它不会转到84。线路 int main() { setlocale(LC_ALL, "Turkish"); int zar1 = 0; int zar2 = 0; int i = 1; int a = 1; int toplamzar = 0; int oyuncununzari = 0; while (i == 1) {

我写了一个简单的barbut游戏。 我想学点东西,如果我考上42分的话。线路;当比赛结束时,它不会转到84。线路

int main() {

    setlocale(LC_ALL, "Turkish");
    int zar1 = 0;
    int zar2 = 0;
    int i = 1;
    int a = 1;
    int toplamzar = 0;
    int oyuncununzari = 0;
    while (i == 1) {
        srand(time(NULL));
        zar1 = 1 + (rand() % 6);
        zar2 = 1 + (rand() % 6);
        toplamzar = zar1 + zar2;
        printf("\n****ZAR 1: %d \n****ZAR 2: %d\n", zar1, zar2);

        switch (toplamzar) {

        case 7: case 11:
            printf("%d attınız ve kazandınız.", toplamzar);
            break;

        case 2: case 3: case 12:
            printf("%d attınız ve kaybettiniz.", toplamzar);
            break;

        case 4: case 5: case 6: case 8: case 9: case 10: {
            printf("%d sayısı sizin sayınız.", toplamzar);

            oyuncununzari = toplamzar;

            toplamzar = -2;
            printf("\nZar atın:");
            scanf("%d", &a);

            while (toplamzar != oyuncununzari || toplamzar != 7) {

                while (a == 1) {

                    zar1 = 1 + rand() % 6;
                    zar2 = 1 + rand() % 6;
                    toplamzar = zar1 + zar2;
                    printf("\n****ZAR 1: %d \n****ZAR 2: %d\n", zar1, zar2);

                    if (toplamzar == oyuncununzari) {
                        printf("%d attınız, kazandınız.", toplamzar);
                        a = 0;



                    }
                    else


                    if (toplamzar == 7) {
                        printf("%d attınız, kaybettiniz.", toplamzar);
                        a = 0;

                    }
                    else

                    if (toplamzar != 7 && toplamzar != oyuncununzari) {
                        scanf("%d", &a);

                    }



                }
            }


            break;
            }

        }

        printf("\nTekrar oynamak ister misiniz?");
        scanf("%d", &i);
        }

    return 0;

    }
如果这场比赛打不进42分。线,当游戏结束时转到84。线路

int main() {

    setlocale(LC_ALL, "Turkish");
    int zar1 = 0;
    int zar2 = 0;
    int i = 1;
    int a = 1;
    int toplamzar = 0;
    int oyuncununzari = 0;
    while (i == 1) {
        srand(time(NULL));
        zar1 = 1 + (rand() % 6);
        zar2 = 1 + (rand() % 6);
        toplamzar = zar1 + zar2;
        printf("\n****ZAR 1: %d \n****ZAR 2: %d\n", zar1, zar2);

        switch (toplamzar) {

        case 7: case 11:
            printf("%d attınız ve kazandınız.", toplamzar);
            break;

        case 2: case 3: case 12:
            printf("%d attınız ve kaybettiniz.", toplamzar);
            break;

        case 4: case 5: case 6: case 8: case 9: case 10: {
            printf("%d sayısı sizin sayınız.", toplamzar);

            oyuncununzari = toplamzar;

            toplamzar = -2;
            printf("\nZar atın:");
            scanf("%d", &a);

            while (toplamzar != oyuncununzari || toplamzar != 7) {

                while (a == 1) {

                    zar1 = 1 + rand() % 6;
                    zar2 = 1 + rand() % 6;
                    toplamzar = zar1 + zar2;
                    printf("\n****ZAR 1: %d \n****ZAR 2: %d\n", zar1, zar2);

                    if (toplamzar == oyuncununzari) {
                        printf("%d attınız, kazandınız.", toplamzar);
                        a = 0;



                    }
                    else


                    if (toplamzar == 7) {
                        printf("%d attınız, kaybettiniz.", toplamzar);
                        a = 0;

                    }
                    else

                    if (toplamzar != 7 && toplamzar != oyuncununzari) {
                        scanf("%d", &a);

                    }



                }
            }


            break;
            }

        }

        printf("\nTekrar oynamak ister misiniz?");
        scanf("%d", &i);
        }

    return 0;

    }

您需要更改行:

while (toplamzar != oyuncununzari || toplamzar != 7)
致:


因此,当两个条件均为真时,循环将执行。现在,即使其中只有一个是真的,它也会执行。

toplamzar!=Oyuncunzari | | toplamzar!=7
-->
toplamzar!=Oyuncunzari和toplamzar!=7
@BLUEPIXY是的,非常感谢<代码>while(toplamzar!=Oyunnunzari&&toplamzar!=7)会做同样的事情。@Badda True,但这是我写代码的方式,因为它对我来说更清楚。是的,没问题,这只是一个提示,以防有人想知道什么