簡體   English   中英

C程序總計可以由任意數量的人玩

[英]C Program The game Totals can be played by any number of people

編寫程序:游戲總計可以由任意數量的人玩。 它以總數為100開始,然后每個玩家依次對該總數進行-20到20之間的整數調整。 獲勝者是其調整使總分等於5的玩家。輸出應為:

Output
WE START WTITH 100. WHAT IS
YOUR ADJUSMENT? -20
         THE TOTAL IS: 80
YOUR ADJUSMENT? -35
         NOT AN INTEGER BEWTWEEN -20 AND 20
YOUR ADJUSMENT? 10
         THE TOTAL IS: 90
YOUR ADJUSMENT? 25
         NOT AN INTEGER BEWTWEEN -20 AND 20
YOUR ADJUSMENT? -20
         THE TOTAL IS: 70
YOUR ADJUSMENT? 7
         THE TOTAL IS: 77
YOUR ADJUSMENT? -15
         THE TOTAL IS: 62
YOUR ADJUSMENT? -20
         THE TOTAL IS: 42
YOUR ADJUSMENT? -19
         THE TOTAL IS: 23
YOUR ADJUSMENT? -18
         THE TOTAL IS: 5
THE GAME IS WON IN 10 STEPS

所以這是我的代碼:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int total=100, adjustment, counter=0;

    printf("WE START WITH 100. WHAT IS YOUR ADJUSMENT? ");
    scanf("%i", &adjustment);

    while (total != 5)
    {
        if (adjustment>=-20&&adjustment<=20)
        {
            total = total+adjustment;
            printf("The total is %i", &total);
            counter++;}
        else
        {
            printf("NOT AN INTEGER BEWTWEEN -20 AND 20");
            counter++;
        }

        printf("\nYOUR ADJUSMENT? ");
        scanf("%i", &adjustment);
    }

    printf("\nTHE GAME IS WON IN %d STEPS", &counter);
}

我不知道為什么每次運行該程序時,都會給我很大的總數。 請幫我解決!!!

您必須編寫printf("The total is %i", total); 而不是printf("The total is %i", &total); 打印total價值。

printf("The total is %i", &total); 是未定義的行為,因為printf() %i調用int數據,而&totalint*類型。

此外,您還必須編寫printf("\\nTHE GAME IS WON IN %d STEPS", counter); 而不是printf("\\nTHE GAME IS WON IN %d STEPS", &counter); 出於同樣的原因。

&total in printf("The total is %i", &total); signed format打印總計的地址,這就是您得到很大數字的原因。

%i和%d是有符號整數的格式說明符,%u是無符號整數的格式說明符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM