#include?<stdio.h>
#include?<stdlib.h>
#include?<time.h>
int?main()
{
int?x,?magic,?a?=?0,?c?=?1;
char?b;
do
{
srand(unsigned(time(NULL))); //為函數rand()設置隨機數種子
magic?=?rand()?%?100?+?1; //magic為1~100間的壹個數
printf("您每次遊戲中,只有十次機會\n");
while?(a?<=?10)
{
scanf("%d",?&x);
if?(x>magic)
printf("Wrong,比magic大\n");
else?if?(x<magic)
printf("Wrong,比magic小\n");
//else?if?(x?=?magic) //這裏的邏輯運算應該使用“==”
else?if?(x?==?magic) //妳應該是寫錯了
{
printf("Right\n");
a?=?a?+?1;
printf("妳猜了%d次了\n",?a);
a?=?0; //猜對之後,應該對猜測的次數初始化
break;
}
a++;
printf("妳猜了%d次了\n",?a);
if?(a?==?10)
{
a?=?0;
printf("Do?you?want?to?continue?(回答Y/N或者y/n)\n");
//scanf_s("%c",?&b); //這麽使用,會將妳在輸入字符之前的
//?空行(enter鍵)賦值給?b,而不是妳輸入的Y/N/y/n
scanf("?%c",?&b); //而這種寫法,%c?前面的?空格會使?scanf?忽略前面的?enter鍵
//等待第壹個非?enter鍵?元素讀入
if?(b?==?'y'?||?b?==?'Y')
c?=?1;
else?if?(b?==?'n'?||?b?==?'N')
c?=?0;
break; //當猜測次數為?10?時,應當跳出
//這裏不會自動跳出,因為?a?被初始化為?0
}
}
}?while?(c?==?1);
return?0;
}
scanf 裏面沒有空格的情況,程序會自動執行 10 次
修改後的程序,猜對的情況
修改後的程序,猜錯 10 次,Y的情況
修改後的程序,猜錯 10 次,N的情況