在课堂上学习数组。尝试通过使用我的数组而不是下面的示例来玩下面的代码来理解它们。
数组示例:
string[16] = {"Toelle","Red Lightning","Penguins","Tigers","You Know It","VP4LIFE","OG WOW","Indy","Ok","NOSER","LAK State","THE State","NY","Ks","Tahaa","Fosda"};
代码:
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// This program inputs a list of team names and runs a random tournament to find the winner.
void print_teams(string *ptr, int size)
{
for(int team = 0; team < size; team++)
{
cout << "Team "<<team<<"="<<ptr[team]<<endl;
}
}
int main()
{
const int NTEAMS=4;
string *teams = new string[NTEAMS];
// Get input from the user for the teams
for(int team = 0; team < NTEAMS; team++)
{
cout <<"Enter the name for team #"<<team<<":";
getline(cin, teams[team]);
}
print_teams(teams, NTEAMS);
int teams_left = NTEAMS;
string *team_ptr = teams;
for(int round = 0; teams_left > 1; round++) {
// Allocate space for the winners
int new_size = teams_left/2;
string *new_teams = new string[new_size];
// Run a round of the tournament
for(int team = 0; team < teams_left; team+=2)
{
// Pick a winner
int winner = rand()%2;
//update the winners array
new_teams[team/2] = team_ptr[team+winner];
}
cout << "Round "<<round<<endl;
print_teams(new_teams, new_size);
// Update the size and team pointer for the next round
teams_left = new_size;
// Free up the space for the old teams list
delete[] team_ptr;
team_ptr = new_teams;
}
system("pause");
}