[英]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
數據,而&total
是int*
類型。
此外,您還必須編寫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.