2017-04-08 4 views
0

は私が出力しようとしていることは、ディーラーのロール(番号は配列に格納されるようになっている)であるが、私はあなたが作ることができますがintDealerRoll(dealerRoll[3]);C++の関数で配列を作る方法は?

#include <iostream> 
#include <time.h> 
#include <stdio.h>  
#include <stdlib.h> 
using namespace std; 

//Dice Rolls 
int DealerRoll(int dealerRoll[3]) { 
    srand (time(NULL)); 
    for (int dealerCount = 0; dealerCount < 3; dealerCount++) { 
     dealerRoll[dealerCount] = rand()% 6+1; 
     cout << dealerRoll[dealerCount] << " "; 
    } 
    return dealerRoll[3]; 
} 

int main() { 
    int dealerRoll; 
    cout << "Dealer's Roll: " << endl; 
    DealerRoll(dealerRoll[3]); 
    system ("pause"); 
    return 0; 
} 
+0

'return dealerRoll [3];'は、配列の外側にあるintを返します.' dealerRoll'の中で最も大きいインデックス付き要素は 'dealerRoll [2]'です。 – doug

答えて

0

変更ラインint dealerRoll;理由

int dealerRoll[3];として:あなたが機能するように配列を渡す必要がありますが、あなたが宣言されています整数変数

変更ラインDealerRoll(dealerRoll[3]);

DealerRoll(dealerRoll);として理由:関数は、入力として配列を取るが、あなたは、配列の代わりに(整数に分解されます)配列の3番目の位置を通過してきました。

2

に無効なタイプがあるというエラーを取得しておきます関数内の配列であるstd::vectorは、柔軟性が向上し、リソース管理が処理されます。配列のサイズが固定されている場合は

、あなたの代わりにstd::array<int,3>を使用することができます。

void DealerRoll(std::array<int,3>& dealerRoll) { 
    srand (time(NULL)); 
    for (int dealerCount = 0; dealerCount < 3; dealerCount++) { 
     dealerRoll[dealerCount] = rand()% 6+1; 
     cout << dealerRoll[dealerCount] << " "; 
    } 
} 
... 
int main() { 
    std::array<int,3> dealerRoll; 
    cout << "Dealer's Roll: " << endl; 
    DealerRoll(dealerRoll); 
    ... 
} 
0
#include <iostream> 
#include <time.h> 
#include <stdio.h>  
#include <stdlib.h> 
using namespace std; 

//Dice Rolls 
void DealerRoll(int* dealerRoll) //retrieving array in pointer 
{ 
    srand (time(NULL)); 
    for (int dealerCount = 0; dealerCount < 3; dealerCount++) 
    { 
    dealerRoll[dealerCount] = rand()% 6+1; 
    cout << dealerRoll[dealerCount] << " "; 
    } 

} 

int main() 
{ 
    int dealerRoll[3]; //syntax for creating array 

    cout << "Dealer's Roll: " << endl; 
    DealerRoll(dealerRoll); //passing address of array in function 

    //As Values are passed by address, values retained in array 
    cout<<"\nValues in Dealer's Roll : "<<endl; 
    for (int dealerCount = 0; dealerCount < 3; dealerCount++) 
    { 
     cout << dealerRoll[dealerCount] << " "; 
    } 
system ("pause"); 
return 0; 
} 
関連する問題