2009-11-26 5 views
0

Je saisis les noms d'équipes dans une ligue de football.Je souhaite attribuer une valeur à une chaîne

J'ai un tableau mis en place afin que la ligue peut prendre au maximum 4 équipes,

J'ai aussi un tableau qui indique que le nombre d'équipes dans la ligue est exactement 4 équipes. Donc, je veux mettre en place un compteur qui m'empêche d'entrer trop de noms d'équipes.

Ce petit morceau de mon code

str teamname

for(int i = 0; i < leagueSize; i++) 

cout << "Enter a Team Name"<<endl' 
cin >> teamName; 

donc est-il un moyen pour moi de donner une équipe nom d'une valeur de 1, de sorte que chaque fois que j'entrer un nom d'équipe il décrémente le nombre dans le tableau jusqu'à ce que je ne puisse plus ajouter d'équipes? Je suis nouveau au C++ et n'ai pas appris pendant si longtemps que je pourrais être totalement hors ici.

Merci d'avance.

+0

donc autrement dit je ne vais pas avoir la possibilité d'entrer dans une autre équipe reguardless droit? Cela signifie que dans mon code, je n'ai pas besoin de mettre quelque chose après ma déclaration cin? – John

+0

Est-ce que vous n'êtes pas déjà en train de compter jusqu'à max leagueSize = 4? Donc à la fin vous ne serez demandé que 4 fois? Pouvez-vous donner plus d'informations? Quand et où ça va mal?Par ailleurs, donnez vos parenthèses de boucle car elle prendra maintenant seulement la première ligne. donc pour() {cout << ... << endl; cin >> teamname; } – bastijn

+0

C'est ce que je dis en fonction de ce que je vois ici oui. Chaque fois que "cin >> teamName" est appelé, il vous sera demandé de remplir un nom. Comme il est seulement demandé 4 fois, seulement 4 équipes peuvent être passées aussi loin que je peux voir de ce code. – bastijn

Répondre

4

Vous y êtes presque, vous manquez juste quelques accolades, et vous devez déclarer un tableau au lieu d'une seule chaîne pour les noms de l'équipe:

#include <iostream> 
#include <string> 

using namespace std; 

int main(void) 
{ 
int leagueSize = 4; 
string teamNames[leagueSize]; 
for (int i = 0; i < leagueSize; i++) { 
    cout << "Enter a team name:" << endl; 
    cin >> teamNames[i]; 
} 

cout << endl; 
cout << "The following teams have been entered:" << endl; 
for (int i = 0; i < leagueSize; i++) { 
    cout << "Team " << (i + 1) << ": " << teamNames[i] << endl; 
} 
} 
2

A pour la structure de contrôle (ainsi que if, else et while), exécute l'instruction ou le bloc suivant. Donc, dans votre exemple:

for(int i = 0; i < leagueSize; i++) 
    cout << "Enter a Team Name"<<endl; 
cin >> teamName; 

Seule la déclaration de sortie fait partie de la boucle et la déclaration d'entrée se produit une seule fois après la boucle entière est terminée.

Alors, ce que vous voulez faire est de mettre votre code dans un bloc:

for(int i = 0; i < leagueSize; i++) 
{ 
    cout << "Enter a Team Name"<<endl; 
    cin >> teamName; 
} 

Beaucoup C et C++ styles de codage vous recommandons d'utiliser toujours un bloc, même si vous avez seulement une seule instruction:

for (...) 
{ 
    one-statement; 
} 
0

Ok, donc j'ai édité un peu le code,

les instructions précises disent: écrire une fonction pour saisir tous les noms d'équipe et définir toutes les autres variables

Donc c'est ok pour moi de faire tout cela dans une fonction n'est-ce pas?

Ceci est la fonction complète que je suis venu avec addTeam vide (T * T, char * teamname, int i) {
str teamname [leagueSize];

for(int i = 0; i < leagueSize; i++) 

{ 
cout << "Enter a Team Name"<<endl' 
cin >> teamName[i]; 
} 

cout << endl; 
cout << "The following teams have been entered:" << endl; 
for (int i = 0; i < leagueSize; i++) { 
cout << "Team " << (i + 1) << ": " << teamNames[i] << endl; 


T[i].name = teamName; 
T[i].numPoints = 0; 
T[i].numGoalsFor = 0; 
T[i].numGoalsAgainst = 0; 
T[i].numMatchesPlayed = 0; 
T[i].numMatchesWon = 0; 
T[i].numMatchesLost = 0; 
T[i].numMatchesDrawn = 0; 

}

+0

Vous ne devriez pas répondre à votre question avec une nouvelle question - comment saurais-je la lire? Mais pour répondre à votre question - oui c'est OK, bien qu'il serait préférable de mettre l'initialisation des membres de l'équipe dans le constructeur de la classe Team. C'est ce que le constructeur est pour. –

Questions connexes