上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
hk8100_00 偶而上來逛逛的過客
註冊時間: 2009-06-27 文章: 10
255.69 果凍幣
|
發表於: 2009-10-17, PM 5:55 星期六 文章主題: C++ 問題 |
|
|
代碼: |
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
srand((unsigned)time(NULL));
int sa,input,v;
char t;
do
{
cout << "猜數字範圍(10-100000000) : ";
cin >> sa;
if(sa<10 || sa>100000000)
cout << "設定錯誤 !!" << endl;
else
system("cls");
} while(sa<10 || sa>100000000);
do
{
int r=rand()%sa;
int a=rand()%5+10;
v=a;
do
{
cout << "你剩餘" << v << "次機會" << endl;
cout << "數字 : "; cin >> input;
if(input<r)
{
cout << "數字太小了 !!" << endl << endl;
v--;
}
else if(input>r)
{
cout << "數字太大了 !!" << endl << endl;
v--;
}
else if(input==r)
{
cout << "你猜中了 !!" << endl << endl;
break;
}
else if(v==0)
{
cout << "Game over !!" << endl;
cout << "正確數字是" << r << endl << endl;
break;
}
} while(input!=r);
cout << "Try again (Y) : ";
cin >> t;
system("cls");
} while(t=='y'||t=='Y');
}
|
我想問v=0的時候不會end,但會繼續 ??
甚麼問題 ?? |
|
回頂端 |
|
|
yag Site Admin
註冊時間: 2007-05-02 文章: 689
2704.11 果凍幣
|
發表於: 2009-10-17, PM 8:34 星期六 文章主題: Re: C++ 問題 |
|
|
因為"else" if(v==0)
上面的三個判斷>、<、==已經把所有可能性都佔掉了
這個else怎樣都不可能執行到
去掉else就行了
另外你的縮排有點亂,很難閱讀,用心改善一下會比較好 |
|
回頂端 |
|
|
hk8100_00 偶而上來逛逛的過客
註冊時間: 2009-06-27 文章: 10
255.69 果凍幣
|
發表於: 2009-10-23, PM 4:40 星期五 文章主題: |
|
|
代碼: |
#include <iostream>
#include <ctime>
using namespace std;
int set()
{
int a;
do
{
cout << "猜數字範圍(10-100000000) : "; cin >> a;
if(a<10 || a>100000000)
{
cout << "設定錯誤 !!" << endl;
}
else
{
system("cls");
}
} while(a<10 || a>100000000);
return a;
}
void game()
{
int s=set();
int z;
char t;
int input;
do
{
int x=rand()%12+15;
int r=rand()%s;
z=x;
do
{
cout << "猜數字範圍 : " << s << endl;
cout << "你剩餘 : " << z << "機會" << endl;
cout << "請輸入數字 : "; cin >> input;
if(input<r)
{
cout << "數字太小了 !!" << endl << endl;
z--;
}
else if(input>r)
{
cout << "數字太大了 !!" << endl << endl;
z--;
}
else if(input==r)
{
cout << "你猜中了 !!" << endl;
break;
}
else
{
cout << "輸入錯誤 !!" << endl << endl;
z--;
}
if(z==0)
{
cout << "Game over !!" << endl;
cout << "正確數字是" << r << endl;
break;
}
} while(input!=r);
cout << "Try again (Y) : "; cin >> t;
system("cls");
} while(t=='Y'||t=='y');
}
int main()
{
system("color f0");
srand((unsigned)time(NULL));
cout << "猜數字遊戲 0.1" << endl << endl;
system("pause");
system("cls");
set();
game();
}
|
點解set個猜數字範圍會重覆一次 ?? |
|
回頂端 |
|
|
yag Site Admin
註冊時間: 2007-05-02 文章: 689
2704.11 果凍幣
|
發表於: 2009-10-23, PM 8:55 星期五 文章主題: |
|
|
你main裡set();呼叫了第一次
game裡int s=set();呼叫了第二次 |
|
回頂端 |
|
|
|