[問題] C++ 猜數字
遇到的問題: (題意請描述清楚)
小弟我想寫一個猜4位數字的程式
已預設好正確答案了
所以接下來就是弄輸入玩家答案、比對兩答案和得分的問題
可是我的class的程式碼都沒辦法編譯,一直出現錯誤訊息
請問各位前輩我的class程式碼是哪裡出錯了?
小弟沒學過C,而C++才學沒多久,請各位指點,謝謝!
有問題的code: (請善用置底文標色功能)
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <string>
using std::string;
class Guess
{
public:
//決定答案是否正確
//a代表數字和位置皆正確,b代表只有數字正確
//Ans是玩家答案,tureAns為正確答案
void detAns( int Ans[4], int trueAns[4] )
{
for ( int i = 0; i <= 3; i++ )
{
for ( int j = 0; j <= 3; j++ )
{
if ( trueAns[i] == Ans[j] )
{
if ( i == j )
a++;
else
b++;
}
}
}
}
//在各個情況下加幾分
int setSocre( a, b )
{
if ( a==4 )
score += 10000;
if ( a==3 && b==1 )
score += 3000;
if ( a==2 && b==2 )
score += 1600;
if ( a==1 && b==3 )
score += 800;
if ( b==4 )
score += 400;
if ( b==3 )
score += 10;
if ( b==2 )
score += 2;
if ( true )
score -= 1;
}
//回傳得分
int getScore()
{
return score;
}
private:
int a, b;
int score = 100;
};
補充:
抱歉,補上錯誤訊息:
34 C:\Dev-Cpp\work\hw1.cpp expected `;' before '(' token
55 C:\Dev-Cpp\work\hw1.cpp expected `;' before "int"
C:\Dev-Cpp\work\hw1.cpp In function `int main()':
71 C:\Dev-Cpp\work\hw1.cpp initializer for scalar variable requires one
element
順便再問,我用雙迴圈比較答案。但若是預設答案為1234
而我輸入的答案為1212,結果就變成2a2b的情況,這該如何解決?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.206.28
推
03/11 21:09, , 1F
03/11 21:09, 1F
→
03/11 21:09, , 2F
03/11 21:09, 2F
→
03/11 21:10, , 3F
03/11 21:10, 3F
推
03/11 21:10, , 4F
03/11 21:10, 4F
→
03/11 21:11, , 5F
03/11 21:11, 5F
→
03/11 21:13, , 6F
03/11 21:13, 6F
→
03/11 21:13, , 7F
03/11 21:13, 7F
→
03/11 21:14, , 8F
03/11 21:14, 8F
推
03/11 21:22, , 9F
03/11 21:22, 9F
推
03/11 21:24, , 10F
03/11 21:24, 10F
→
03/11 21:24, , 11F
03/11 21:24, 11F
→
03/11 21:26, , 12F
03/11 21:26, 12F
不好意思,小弟無知= =|| 已補上錯誤訊息。
V大說的是setScore()的a和b嗎?那個宣告我放在private之後,
不曉得這樣對不對……
※ 編輯: semurderer 來自: 140.115.206.28 (03/11 21:40)
推
03/11 21:52, , 13F
03/11 21:52, 13F
→
03/11 21:54, , 14F
03/11 21:54, 14F
→
03/11 21:54, , 15F
03/11 21:54, 15F
→
03/11 21:54, , 16F
03/11 21:54, 16F
推
03/11 21:56, , 17F
03/11 21:56, 17F
推
03/11 21:57, , 18F
03/11 21:57, 18F
→
03/11 21:58, , 19F
03/11 21:58, 19F
所以是把int setSocre( a, b )改成int setSocre( int a, int b )嗎…?
※ 編輯: semurderer 來自: 140.115.206.28 (03/11 22:00)
→
03/11 22:08, , 20F
03/11 22:08, 20F
推
03/11 22:34, , 21F
03/11 22:34, 21F
→
03/11 22:34, , 22F
03/11 22:34, 22F
→
03/11 22:34, , 23F
03/11 22:34, 23F
→
03/11 22:35, , 24F
03/11 22:35, 24F
→
03/11 22:56, , 25F
03/11 22:56, 25F
討論串 (同標題文章)