2013-10-10 50 views
-2

嘿,大家我試圖讓一個數組處理矢量,所以我的代碼每次運行程序時都會停止出現字母「word」。我認爲我需要用矢量做些事情,但我已經閱讀了一些指南,但是如果有人能夠幫助我完成那些很棒的步驟,我會感到非常困惑? :)如何聲明一個具有向量的數組

編輯:基本上我試圖讓我的向量與playGame()函數一起工作;這樣我可以顯示不同的詞,而不是僅僅具有相同的字,每次又名「字」

這裏是我當前的代碼上來的:

#include <iostream> 
#include <string> 
#include <vector> 

using namespace std; 

int playGame(string word); 
string array[]= { "apple", "banana", "orange", "strawberry" }; 
vector<string> word (array, array+4); 

int main() 
{ 
int choice; 
bool menu = true; 
do{ 
cout <<"Please select one of the following options: \n"; 

cout << "1: Play\n" 
    "2: Help\n" 
    "3: Quit\n"; 

cout << "Enter your selection (1, 2 and 3): "; 
cin >> choice; 
//***************************************************************************** 
// Switch menu to display the menu. 
//***************************************************************************** 
    switch (choice) 
{ 
     case 1: 
     cout << "You have chosen play\n"; 
     //int playGame(string word); 
     playGame("word"); 
     break; 
    case 2: 
     cout << "You have chosen help\n"; 
     cout << "Here is a description of the game Hangman and how it is played:\nThe  word to guess is represented by a row of dashes, giving the number of letters, numbers and category. If the guessing player suggests a letter or number which occurs in the word, the other player writes it in all its correct positions"; 
     break; 
     case 3: 
     cout << "You have chosen Quit, Goodbye."; 
     break; 
    default: 
     cout<< "Your selection must be between 1 and 3!\n"; 

    } 

}while(choice!=3);  
getchar(); 
getchar(); 


cout << "You missed " << playGame("programming"); 
cout << " times to guess the word programming." << endl; 
} 
+2

請更具體。你想通過「使用矢量獲得數組」來達到什麼目的?此外,請只顯示*相關*部分代碼。像這樣這是一個猜謎遊戲,你可能意味着什麼 – codeling

+0

這是否更有幫助?對不起,我是新手,想弄清楚哪些代碼是相關的。 – user2857301

+0

你的代碼'vector word(array,array + 4);'是聲明一個數組副本的向量的正確方法。所以如果你有麻煩,那麼它一定是在別的地方。我根本不清楚的是爲什麼你認爲從數組切換到矢量會有所幫助。也許你會解釋爲什麼你會這麼想。 – john

回答

2

向量不是答案的一部分。你可以使用數組或向量來進行這項工作。這個問題(據我瞭解)是,你想從你的單詞列表中選擇一個隨機單詞。以下是如何做到這一點使用數組

int main() 
{ 
    size_t sizeOfArray = sizeof array/sizeof array[0]; // calculate the 
                 // size of the array 
    srand(time(0)); // set up random number generator 

    ... 

     case 1: 
      cout << "You have chosen play\n"; 
      playGame(array[rand()%sizeOfArray]); // pick a random word 
      break; 
+0

我在哪裏準確定義數組?它給我錯誤array/sizeof – user2857301

+0

+1爲你的心靈力量發現OP想問什麼;) – codeling

+0

是謝謝你的幫助人,但我不知道爲什麼數組旁邊的大小給我的未定義的錯誤:/ – user2857301

1

在較高的水平,假設我們decidce玩,你的代碼做這個

playGame("word"); 

換句話說,你總是字"word"發送到功能playGame,因此它總是使用字word。從一組單詞中隨機選擇一個不同的單詞會明確地給你在每個遊戲中的各種單詞,而不是一遍又一遍地重複同一個單詞。

WHE你說

I'm trying to get my vectors to work with the function playGame(); 

我想你指的是playGame(string word)功能,而不是你不告訴我們一些其他的功能。

在向量中選擇了一個隨機索引,例如index,只需將您的調用更改爲playGame函數,如下所示。 playGame(word [index]);

這將索引你一句話叫數組,而不是字"word"

當然,這意味着不需要陣列,當然並不需要是全球性的和文字的載體可在主要職能範圍內進行宣傳,而不是在全球範圍內進行宣傳。

相關問題