私はこのコードを書いている間に別の問題に遭遇しましたが(プログラマーから多大な助けを借りて)、正しい値を出力するプログラムに問題があります。 beadArrayTopは、出力何かがこのように見えるはずです。配列から特定の値を出力して正しい値を取得
4 * 4 * 4 * 4 * 4 * 4 *
ではなく、それはそれを出力し、唯一の0の4者があるべき場所に。
beadArrayBottomはほとんど同じことをします。私は、関数printArrayをbeadArrayTopとbeadArrayBottomの前に置いてみました。さらに、beadArrayTopとbeadArrayBottomをprintArrayの中に入れましたが、役に立たなかった。私の出力を正しくするために何をすべきかについてのヒント?ここでは、コードは次のようになります。
#include <iostream>
#include <iomanip>
using namespace std;
const int MAX = 14;
void line (int &cycleCounter, int &starCounter); //outputs a star followed by six spaces
void solidLine(); //outputs a solid line of stars
void smallerLine(); //ouputs a smaller line of stars
void board(); //outputs the mancala board, with numbers indicating the bins.
void binNumbersTop(); //outputs numbers indicating the bin # (Top only).
void binNumbersBottom(); //outputs numbers indicating the bin # (Bottom only).
void beadArrayTop(); //outputs the array for the top.
void beadArrayBottom(); //outputs the array for the bottom.
void beadArrayMiddle(); //outputs the array for the end bins.
void startArray (int beadArray [MAX]); //Creates an array of 14, with 4 in every slot except for 6 and 13.
void printArray(); //Outputs the array mentioned above
int beadArray[MAX];
int main()
{
board();
cout<<endl;
cout<<endl;
system("pause");
return 0;
}
//**********************************************//
void line()
{
int cycleCounter = 9;
int starCounter = 6;
while (cycleCounter > 0)
{
cout<<"*";
int spaceCounter = 1;
while (spaceCounter > 0)
{
cout<<" ";
spaceCounter = spaceCounter - 1;
starCounter = starCounter - 1;
cycleCounter = cycleCounter - 1;
}
}
}
//************************************************//
void solidLine()
{
int loopCounter;
loopCounter = 57;
while (loopCounter > 0)
{
cout<<"*";
loopCounter = loopCounter - 1;
}
}
//************************************************//
void smallerLine()
{
int loopCounterTwo;
loopCounterTwo = 43;
cout<<"* 13 ";
while (loopCounterTwo > 0)
{
cout<<"*";
loopCounterTwo = loopCounterTwo - 1;
}
cout<<" 6 *";
}
//************************************************//
void binNumbersTop()
{
cout<<"*";
int topNumbers = 1;
cout << setw (7)<<"*";
cout <<setw (4)<< 0;
cout << setw (3)<<"*";
while (topNumbers < 6)
{
cout <<setw (4)<< topNumbers;
cout <<setw (3)<<"*";
topNumbers = topNumbers + 1;
}
cout << setw (7)<<"*"<<endl;
}
//**********************************************//
void binNumbersBottom()
{
cout<<"*";
int bottomNumbers = 11;
cout << setw (7)<<"*";
cout <<setw (4)<< 12;
cout << setw (3)<<"*";
while (bottomNumbers >= 7)
{
cout <<setw (4)<< bottomNumbers;
cout <<setw (3)<<"*";
bottomNumbers = bottomNumbers - 1;
}
cout << setw (7)<<"*"<<endl;
}
//**********************************************//
void beadArrayTop()
{
cout<<"*";
cout <<setw (7)<<"*";
cout <<setw (4) <<beadArray[0];
cout <<setw (3) <<"*";
cout <<setw (4) <<beadArray[1];
cout <<setw (3) <<"*";
cout <<setw (4) <<beadArray[2];
cout <<setw (3) <<"*";
cout <<setw (4) <<beadArray[3];
cout <<setw (3) <<"*";
cout <<setw (4) <<beadArray[4];
cout <<setw (3) <<"*";
cout <<setw (4) <<beadArray[5];
cout <<setw (3) <<"*";
cout <<setw (7) <<"*";
}
//***********************************************//
void beadArrayBottom()
{
cout<<"*";
cout <<setw (4)<<beadArray[13];
cout <<setw (3)<<"*";
cout <<setw (4) <<beadArray[12];
cout <<setw (3) <<"*";
cout <<setw (4) <<beadArray[11];
cout <<setw (3) <<"*";
cout <<setw (4) <<beadArray[10];
cout <<setw (3) <<"*";
cout <<setw (4) <<beadArray[9];
cout <<setw (3) <<"*";
cout <<setw (4) <<beadArray[8];
cout <<setw (3) <<"*";
cout <<setw (4) <<beadArray[7];
cout <<setw (3) <<"*";
cout <<setw (4) <<beadArray[6];
cout<< setw (3) <<"*";
}
//***********************************************//
void board()
{
solidLine();
cout<<endl;
line();
cout<<endl;
binNumbersTop();
line();
cout<<endl;
beadArrayTop();
cout<<endl;
line();
cout<<endl;
smallerLine();
cout<<endl;
line();
cout<<endl;
binNumbersBottom();
line();
cout<<endl;
beadArrayBottom();
cout<<endl;
line();
cout<<endl;
solidLine();
cout<<endl;
}
//*********************************************//
void startArray (int beadArray[MAX])
{
for(int i=0; i<MAX; ++i)
{
beadArray[i]=4;
}
beadArray[6]=0;
beadArray[13]=0;
}
//*********************************************//
void printArray()
{
startArray (beadArray);
for(int i=0; i<MAX; i++)
cout << beadArray[i];
cout<<endl<<endl;
}
//*********************************************//
私はint beadArray [MAX]を取り出しました。しかし、私は配列を出力するときに私はまだ0を取得します。 – chrisvx930
私はすべてのコードを書いたので、ここで何が起こるかを見ることができます。 – chrisvx930
'printArray()'から呼び出された関数で配列の内容を変更していると、非常に奇妙に思えるかもしれません。おそらく 'initializeAndPrintArray()'などの名前を付けるべきでしょうか? (_Why_あなたはそれを印刷するときに配列を初期化しますか?それは配列の効用と印刷機能をいくらか制限します...) – sarnold