原本我写的是一段很简单的代码,遇到输入字母或者所输入的数字不在指定范围内就直接提示输入错误然后结束程序。现在我想改得完善些,输错后还可继续输入直到正确为止。但是发现不知道如何处理输入的是字母的情况。因为定义的num是int型,所以读入字母后就跳不出第46行代码所写的那个循环了。求助一下~灰常感谢哦!
程序代码:
1.//猜价格游戏
2.#include
3.#include
4.#include
5.using namespace std;
6.int judge(int& num,int& i) //判断输入的数在不在取值范围
7.{
8. if(num>0&&num<1000)
9. i=1;
10. else
11. i=0;
12.}
13.void guss_price(int price,int& num,int& i,int& go) //猜价格
14.{
15. if(num > price){
16. cout<<"Higher than the price,try again!"<
18. judge(num,i);
19. }
20. else if(num < price){
21. cout<<"Lower than the price,try again!"<
23. judge(num,i);
24. }
25. else
26. {
27. cout<<"Bingo!!"<
29. go=0; //改变go的值,跳出大循环
30. }
31.}
32.int main()
33.{
34. int price,num,i,go=1;
35. srand(time(NULL)); //随机数种子
36. price = rand()%1000; //取得随机数
37. cout<<"please guess the price:"<
39. judge(num,i);
40. while(go==1) //进入大循环
41. {
42. while(i==1)
43. {
44. guss_price(price,num,i,go);
45. }
46. while(i==0)
47. {
48. cout<<"WRONG NUMBER!"<
51. judge(num,i);
52. }
53.
54. }
55. return 0;
56.}