如何将变量放入数组
我制作的篮球记分牌可以确定每个季度的游戏胜者和主游戏。 如何将我的变量的值存储在数组中? 我想将“Q1teamOne,Q2teamOne,Q3teamOne,Q4teamOne”的值放在一个数组中,并且还要将“Q1teamTwo,Q2teamTwo,Q3teamTwo,Q4teamTwo”的值或它们作为数组的元素。如何将变量放入数组
#include <iostream>
#include <string>
using namespace std;
int main()
{
string Team1;
string Team2;
double OTscore1;
double OTscore2;
int Q1teamOne, Q2teamOne, Q3teamOne, Q4teamOne;
int Q1teamTwo, Q2teamTwo, Q3teamTwo ,Q4teamTwo;
int Q2TeamOneTotal, Q3TeamOneTotal, Q4TeamOneTotal;
int Q2TeamTwoTotal, Q3TeamTwoTotal, Q4TeamTwoTotal;
double teamOneScore[4];
double teamTwoScore[4];
int index;
double sumOne, sumTwo;
cout << "BASKETBALL SCOREBOARD:\n" << endl;
cout << "Enter Team 1 name: ";
getline (cin, Team1);
cout << "Enter Team 2 name: ";
getline (cin, Team2);
//FIRST QUARTER
cout << "\nQUARTER 1:\n\n";
cout << "Team " << Team1 << " Score: ";
cin >> Q1teamOne;
cout << "Team " << Team2 << " Score: ";
cin >> Q1teamTwo;
if (Q1teamOne > Q1teamTwo)
{
cout <<"****" << "Team " << Team1 << " is Leading.****\n\n";
}
else if (Q1teamOne < Q1teamTwo)
{
cout <<"****" << Team2 << " is Leading.****\n\n";
}
else if (Q1teamOne = Q1teamTwo)
{
cout <<"****We Have a Tie!!****\n\n";
}
//SECOND QUARTER
cout << "\nQUARTER 2:\n\n";
cout << "Team " << Team1 << " Score: ";
cin >> Q2teamOne;
Q2TeamOneTotal = Q1teamOne + Q2teamOne;
cout <<"Total Score: "<< Q2TeamOneTotal <<endl;;
cout << "Team " << Team2 << " Score: ";
cin >> Q2teamTwo;
Q2TeamTwoTotal = Q1teamTwo + Q2teamTwo;
cout <<"Total Score: " << Q2TeamTwoTotal;
if (Q2TeamOneTotal > Q2TeamTwoTotal)
{
cout <<"\n****" << Team1 << " is Leading.****\n\n";
}
else if (Q2TeamOneTotal < Q2TeamTwoTotal)
{
cout <<"\n****" << Team2 << " is Leading.****\n\n";
}
else if (Q2TeamOneTotal = Q2TeamTwoTotal)
{
cout <<"\n****We Have a Tie!!****\n\n";
}
//THIRD QUARTER
cout << "\nQUARTER 3:\n\n";
cout << "Team " << Team1 << " Score: ";
cin >> Q3teamOne;
Q3TeamOneTotal = Q1teamOne + Q2teamOne + Q3teamOne;
cout <<"Total Score: "<< Q3TeamOneTotal <<endl;;
cout << "Team " << Team2 << " Score: ";
cin >> Q3teamTwo;
Q3TeamTwoTotal = Q1teamTwo + Q2teamTwo + Q3teamTwo;
cout <<"Total Score: " << Q3TeamTwoTotal;
if (Q3TeamOneTotal > Q3TeamTwoTotal)
{
cout <<"\n****" << Team1 << " is Leading.****\n\n";
}
else if (Q3TeamOneTotal < Q3TeamTwoTotal)
{
cout <<"\n****" << Team2 << " is Leading.****\n\n";
}
else if (Q3TeamOneTotal = Q3TeamTwoTotal)
{
cout <<"\n****We Have a Tie!!****\n\n";
}
//FOURTH QUARTER
cout << "\nQUARTER 4:\n\n";
cout << "Team " << Team1 << " Score: ";
cin >> Q4teamOne;
Q4TeamOneTotal = Q1teamOne + Q2teamOne + Q3teamOne + Q4teamOne;
cout <<"Total Score: "<< Q4TeamOneTotal <<endl;
cout << "Team " << Team2 << " Score: ";
cin >> Q4teamTwo;
Q4TeamTwoTotal = Q1teamTwo + Q2teamTwo + Q3teamTwo + Q4teamTwo;
cout <<"Total Score: " << Q4TeamTwoTotal;
if (Q4TeamOneTotal > Q4TeamTwoTotal)
{
cout <<"\n****" << Team1 << " is Leading.****\n\n";
}
else if (Q4TeamOneTotal < Q4TeamTwoTotal)
{
cout <<"\n****" << Team2 << " is Leading.****\n\n";
}
else if (Q4TeamOneTotal = Q4TeamTwoTotal)
{
cout <<"\n****We Have a Tie!!****\n\n";
}
什么约:
teamOneScore [0] = Q1teamOne;
teamOneScore [1] = Q2teamOne;
teamOneScore [2] = Q3teamOne;
teamOneScore [3] = Q4teamOne;
teamTwoScore [0] = Q1teamTwo;
teamTwoScore [1] = Q2teamTwo;
teamTwoScore [2] = Q3teamTwo;
teamTwoScore [3] = Q4teamTwo;
但是考虑:
阵列teamOneScore和teamTwoScore是双阵列和你的分数是整型,所以:
- 变化的数组类型是整数或
- 投转让as:teamOneScore [0] = static_cast < double>(Q1teamOne);
而且,只为您的信息,这种比较是不正确的:
否则,如果(Q4TeamOneTotal = Q4TeamTwoTotal)
它应该是:如果
其他(Q4TeamOneTotal == Q4TeamTwoTotal)
作为最后一点,您可以使用数组来存储cin的分数,并避免使用Q1teamOne,... vars。
我遵循你的建议,并使用cin存储我的价值观,感谢您的帮助! – 2014-12-02 10:05:12
例如
#include <functional>
//...
std::reference_wrapper<int> teamOne[] = { Q1teamOne, Q2teamOne, Q3teamOne, Q4teamOne };
std::reference_wrapper<int> teamTwo[] = { Q1teamTwo, Q2teamTwo, Q3teamTwo ,Q4teamTwo };
下面是一个示范程序
#include <iostream>
#include <functional>
int main()
{
int Q1teamOne, Q2teamOne, Q3teamOne, Q4teamOne;
std::reference_wrapper<int> teamOne[] =
{
Q1teamOne, Q2teamOne, Q3teamOne, Q4teamOne
};
int i = 0;
for (auto &x : teamOne) x.get() = i++;
for (const auto &x : teamOne) std::cout << x << ' ';
std::cout << std::endl;
return 0;
}
程序输出是
0 1 2 3
或者,如果原始值和所述阵列之间的链路不需要那么哟你可以简单地写
double teamOneScore[] = { Q1teamOne, Q2teamOne, Q3teamOne, Q4teamOne };
你也可以在基于for语句的范围中使用初始值设定项列表而不声明任何数组。例如
for (int x : { Q1teamOne, Q2teamOne, Q3teamOne, Q4teamOne }) std::cout << x << ' ';
std::cout << std::endl;
'std :: array teamOneArray;'?你已经拥有了数组的分数,这意味着你已经知道如何创建数组了,那么你的问题是什么? –
2014-12-02 08:34:06
是的我知道如何创建数组,但是我如何将变量值放在“teamOneScore”数组中? – 2014-12-02 08:56:53
你应该使用'vector'而不是数组。这是存储集合的C++方式。 – 2014-12-02 09:21:18