Besion d'aide en c++

Fermé
ahumax Messages postés 5 Date d'inscription mercredi 27 février 2008 Statut Membre Dernière intervention 30 mars 2008 - 8 mars 2008 à 14:38
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 - 8 mars 2008 à 16:01
Salut a tous.
Je suis un programmeur débutant j’ai un petit souci avec mon programme en c++
Le voila le programme
Entrez le nom de l’équipe : string
Entrez le résulta du matche : string
Entrez le résulta du matche : string
Entrez le résulta du matche : string
Entrez le résulta du matche : string
Voici le total de point de l’équipe : int
Voici le nombre de victoire : int
Voici le nombre de match nulle : int
Voici le nombre de défaite : int
J’utilise v pour victoire, n pour matche nulle, d pour défaite.
Pour chaque victoire l’équipe gagne 3 point, pour chaque matche nulle l’équipe gagne 1 point, et pour la défaite l’équipe ne gagne rien.
J’ai utilisé la table mémoire pour évité les répétitions

Voila mon script
une petit chose j'ai pas reussi a integré la variable ma[5](entrez le réslulta du match )sous string alor le l'ai mise sous int

#include <iostream.h>
#include <conio.h>
#define g gotoxy
#define c cout
#define i cin

void main()
{
string nom;

int pt,nv,nm,nd,a,z,v,n,d,ma[5];

g(2,2);c<<"entrez le nom de l'equipe";
g(2,4);c<<"entrez le resulta de match";
g(2,6);c<<"entrez le resulta de match";
g(2,8);c<<"entrez le resulta de match";
g(2,10);c<<"entrez le resulta de match";
g(2,12);c<<"entrez le resulta de match";
g(2,14);c<<"voici le total des des point de l'equipe";
g(2,16);c<<"voici le nombre de victoir";
g(2,18);c<<"voici le nombre de match nule";
g(2,20);c<<"voici le nombre de defaite";

g(55,2);i>>nom;
a=0;z=4;
for(a=0;a<=5;a++)
{
g(55,z);i>>ma[a];
if (ma=="v")
{
ma[a]=3;
pt=pt+ma[a];
}else
if (ma=="n")
{
ma[a]=2;
pt=pt+ma[a];
}else
if(ma=="d")
{
ma[a]=0;
pt=pt+ma[a];

}
z=z+2;


}

g(55,14);c<<pt;
g(55,16);c<<nv;
g(55,18);c<<nm;
g(55,20);c<<nd;


getche();
}

Stp si il y a qlq’un qui peux m’expliquer ou se trouve mon erreur dite le moi
Je vous serai reconnaissent
Merci pour votre attention.

2 réponses

Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
8 mars 2008 à 15:07
Bonjour,

Le programme n'a pas compilé chez moi. :-/

1)
#include <iostream.h> n'existe pas (la plupart des fichiers standard du C++ n'ont pas l'extension .h. C'est le cas ici.
#include <iostream>

2)
Ne trouve pas la fonction gotoxy utilisée dans la macro g
Comme je ne sais pas non plus, j'ai remplacé la définition de g par #define g( _A, _B )

3)
Ne trouve pas string nom;
#include <string>
et
using namespace std; // entre les include et le main.

Les objets standard du C++ sont définis dans un namespace nommé std.
namespace UnJoliNom
{
// Définition de type classe fonction enum etc
}
Cela sert à ranger les choses. On pourra alors différencier les classes Hotel::Client et Reseau::Client.
Soit on utilise le NomDuNamespace::NomDeLaClasse (/ nom de fonction type enum etc) partout.
Soit on dit que par défaut, si aucun élément de ce nom est trouvé on cherche aussi dans ... grace à un using namespace nomDuNamespace;

4)
if (ma=="v")
ma est un (int *) et "v" un (char *), la comparaison est impossible.
Préciser le test voulu.

5)
for(a=0;a<=5;a++)
ma[a]...
ma est un tableau de 5 éléments indicé de 0 à 4. ma[5] est indéfini (mais ça le compilo le dit pas...)

Le reste semble correct syntaxiquement.

6)
>>j'ai pas reussi a integré la variable ma[5]
Je n'ai pas compris.
std::string ma[5]; // ?
std::string ma; // ?

M.


EDIT.
Un rapport quelconque ?
0
ahumax Messages postés 5 Date d'inscription mercredi 27 février 2008 Statut Membre Dernière intervention 30 mars 2008
8 mars 2008 à 15:36
je ne comprend pas très bien dans mon ordi j'utilise le borland c++ version 6
Le programme marche bien . je veux dire qu'il se compile mais c'est juste que quand je dis au programme de de faire le calculé et de m'affiche le total de point de l'équipe et pour le nombre de victoire et pour le nombre de match nulle et aussi pour le nombre de défaite (ÇÀ NE MARCHE ÇA AFFICHE DES nombres imaginaires )
0
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
8 mars 2008 à 16:01
La première chose qui peut être faite c'est d'initialiser le tableau

int ma[5] = { 0, 0, 0, 0, 0 }
// Ou
int ma[5];
memset( ma, 0, 5 * sizeof(int) );

Cela permet de voir que le tableau n'est jamais modifié. Ce qui nous ramène au point numéro 4.
Si les trois premiers n'empêchent pas de compiler c'est ok. Le 4 et le 5 entraînent de erreurs.

Quelle est la correction que tu y as apporté ?

M.
0