1樓:鬱_詩
原因分析:
「scanf("%d",&a);」這一行,輸入完一個數字後,你還必須按下回車鍵,所以這行執行完畢後緩衝區就還留著一個'\n'字元即回車字元。執行到「}while(ch=getchar()!='n');」時,這字元就直接賦給了ch(驗證方法:
把「while(ch=getchar()!='n');」改為「while(ch=getchar()!='\n');」,你會發現輸入一個數字後程式就直接結束了)。
對症下藥:
方案一:「scanf("%d",&a);」這一行後加上「fflush(stdin);」(作用:清空輸入流)。
但這樣改有個麻煩,就是你每次輸入一個數字後你都還得因要執行getchar()而再輸入一個字元。
方案二:「}while(ch=getchar()!='n');」改為「}while(ch=getch()!
='n');」(getch()會自動跳過前導的回車字元),這樣改也有個類似方案一的麻煩,就是輸入一個數字後你還得按一個鍵後方能再輸入數字。
方案三:進行**優化:(順便說下,你的**可讀性有些問題,和下面的對照下吧)
#include
#include
#include
int main()}}
給分吧,花了我老半天時間呢!
2樓:王剛雕
#include
#include
#include
int main()
}while(ch=getchar()!='n');}}
3樓:匿名使用者
你先拿5來測試看符合不符合你的要求。測試好了再把i=5;去掉。
#include
#include
#include
int main()
}while(ch!='n');}}
4樓:十四個矮子
dowhile((ch=getchar())!='n');
賦值號的優先順序低於不等判斷,所以要加括號。
c語言編寫猜數字遊戲
5樓:阿冬
#include
#include
#include
int main()
}return 0;}
6樓:香坊大呲花哼
||#include
#include
//#include
unsigned char num[4] = ,getnum[4] = ;
void help(void) }
else }
} }void main( void ) }
if(j == 4)i++;
} get: for(i = 0;i<4;)else
printf("input one num\r\n");
//if(i>0)i--;
} else }
if(j==i)
i++;
} }printf("you input num %d%d%d%d y or n?\r\n",getnum[0],getnum[1],getnum[2],getnum[3]);
dowhile( !((j == 'y') || (j == 'y')));
printf("over");}
7樓:召平賓明朗
可以採用迴圈輸入,限制輸入值。
例如:輸入a>2
inta;
while(scanf("%d",&a))
c語言猜數字遊戲源程式
8樓:星月小木木
# include
# include
# include
main()
}while(ba)//比較兩個數大小}}
c語言程式設計猜數字遊戲 輸入一個書告訴其大了還是小了有三次可猜機會
9樓:匿名使用者
#include
#include
#include
int main()
while(m != n);
printf("答對了!\n");
printf("共猜測了%d次。\n",i);
if(i <= 5 )
printf("你太聰明瞭,這麼快就猜出來了。\n\n");
else if(i > 5)
printf("你還需改進方法,以便更快猜出來!\n\n");
return 0;}
10樓:匿名使用者
這個我可以幫你寫,私聊
c語言程式設計:編寫一個猜數的遊戲,系統自動產生一個隨機數,你來猜,程式給出提示,直到猜對為止。 20
11樓:匿名使用者
#include
#include
#include
int main(void)
else if (b的值太小權:\n");
}}while (b!=a);
printf("恭喜你猜對了!");
printf("這個數是:%d\n",a);
return 0;}
12樓:符華陽
#include//為獲得隨機數
#include//獲取時間
void main()
else if (b>a)
else
}getchar();}
13樓:衝佳磊
#include
#include
int main(void)
if(x>magic)
else
}return 0;}
14樓:樂酷科技
int num;
scanf("%d",&num);
if(num>a)
else if(num數值太小\n請輸入你心中想的那個數:");continue;}
else
//迴圈裡就是這樣實現的 謝謝採納
c語言 編寫一個猜數字遊戲,規則:使用隨機函式產生一個5位數,輸入猜測資料,判斷幾個正確,詳細如下: 15
15樓:匿名使用者
#include
#include
#include
#include
void main()
srand((unsignedint)time(null));
for(i=0;i<5;i++)
for(i=0;i<5;i++)
for(j=0;j<5;j++)
}if(a==5)
printf("你猜測的全部正確\n");
else}
16樓:匿名使用者
mark,晚上當宵夜
c語言程式設計 編一個猜數字遊戲
17樓:匿名使用者
#include
#include
#include
#include
void main()/*主函式*/
for(i=4;i>-1;i--)/*把玩家猜的5個數放到陣列中,便於檢查對錯*/
for(i=0;i<5;i++)/*檢查資料對錯*/}}}printf("猜測結果:%da%db\n",a,b);
if(a==5)
printf("\t答案正確\n"); /*如果a=5就是猜對了*/}}
18樓:匿名使用者
原始碼如下:
/* file: guess.c */
#include /* standard input & output support */
#include /* srand() rand() */
#include /* time() */
/* 巨集定義 */
#define number_length 5 /* 隨機數長度 */
#define number_limit 10 /* 隨機數限制, 每一位0-9 */
#define input_lenth 128 /* 輸入緩衝區大小 */
char goal[number_length] = ; /* 儲存隨機數 */
char flag[number_limit] = ; /* 儲存隨機數標誌, 保證不重複 */
char input[input_lenth] = ; /* 儲存輸入 */
/* 初始化用於儲存資料的陣列 */
void initdata()
}/* 初始化用於儲存緩衝區的陣列 */
void initbuffer()
/* 顯示猜測結果 */
void display()
else
i++;
}printf("\nright: %d bit(s)\n", count);
if (count == number_length)
}/* 生成隨機數 */
void general()
while (flag[tmp] != 0);
flag[tmp] = 1;
goal[i++] = tmp;}}
/* 輸入方法,用於猜測 */
void guess()
/* 主函式,程式主框架 */
int main (int argc, const char * ar**)
*********************************************=
執行結果見附圖,希望我的回答能夠對你有所幫助。
19樓:匿名使用者
樓上厲害!給樓上分吧···
c語言程式設計數學遊戲,c語言程式設計編一個猜數字遊戲
include include include include define z size 3 隨機數 整數最大位數,可自由修改,但總位數不要超過變數型別 define x size 3 隨機數 小數最大位數 define tmn 10 生成題目的數量,預設10條typedef enum boole...
c語言數字排列問題,C語言數字全排列的問題(急!!)求C程式碼和演算法
include include typedef char array 8 void display rand int i,j int found,r get 50 uniq random numbers for i 0 i 50 i while 1 r rand 50 1 found 0 for j...
C語言有效數字問題,在c語言中,有效數字和有效數位怎麼解釋?
輸出控制符是不分單精度雙精度的,之所以有 f和 lf,完全是為了書寫規則的完善,沒有實際意義。都是double型的。f系統預設輸出6個小數點後的位,小數點前的不管多少都輸出為什麼可以完整地把12.123456輸出出來,單精度為6 7為有效數字 g 當指數小於 4或大於等於精度時採用 e或 e的格式,...