Faire un classement en C
nico
-
kazouu Messages postés 466 Statut Membre -
kazouu Messages postés 466 Statut Membre -
Bonjour,
je suis en train d'essayer de faire un programme qui classe des equipes.
Le problème c'est que je n'arrive pas à utiliser des pointeurs de structure qui me permettrait de changer des valeurs en appelant certaines fonctions
#include <stdio.h>
#include <stdlib.h>
typedef struct classement c;
struct Equipe
{
char* nom;
int classement;
int point;
int gagne;
int nul;
int perdu;
int butpour;
int butcontre;
};
struct classement
{
struct Equipe e[2];
int journee;
};
void match(struct Equipe* e1,struct Equipe* e2) {
int score1,score2;
printf("match %s contre %s",*e1.nom,*e2.nom);
scanf("%d",&score1);
scanf("%d",&score2);
*e1.butpour+=score1;
*e1.butcontre+=score2;
*e2.butpour+=score2;
*e2.butcontre+=score1;
}
int main()
{
struct classement c;
//struct classement* c = (struct classement *) malloc(sizeof(struct classement));
c.e[0].point=0;
c.e[1].point=0;
c.e[0].nom="a";
c.e[1].nom="b";
match(&c.e[0],&c.e[1]);
if((c.e[0].point>c.e[1].point)||((c.e[0].point==c.e[1].point)&&((c.e[0].butpour-c.e[0].butcontre)>(c.e[1].butpour-c.e[1].butcontre)))) {
printf("%s %d\n",c.e[0].nom,c.e[0].point);
printf("%s %d\n",c.e[1].nom,c.e[1].point);
}
else {
printf("%s %d\n",c.e[1].nom,c.e[1].point);
printf("%s %d\n",c.e[0].nom,c.e[0].point);
}
}
Il me met comme erreur
request for member «nom» in something not a structure or union dans la fonction match
incompatible type for argument 2 of «match» dans le main en appelant la fonction
je suis en train d'essayer de faire un programme qui classe des equipes.
Le problème c'est que je n'arrive pas à utiliser des pointeurs de structure qui me permettrait de changer des valeurs en appelant certaines fonctions
#include <stdio.h>
#include <stdlib.h>
typedef struct classement c;
struct Equipe
{
char* nom;
int classement;
int point;
int gagne;
int nul;
int perdu;
int butpour;
int butcontre;
};
struct classement
{
struct Equipe e[2];
int journee;
};
void match(struct Equipe* e1,struct Equipe* e2) {
int score1,score2;
printf("match %s contre %s",*e1.nom,*e2.nom);
scanf("%d",&score1);
scanf("%d",&score2);
*e1.butpour+=score1;
*e1.butcontre+=score2;
*e2.butpour+=score2;
*e2.butcontre+=score1;
}
int main()
{
struct classement c;
//struct classement* c = (struct classement *) malloc(sizeof(struct classement));
c.e[0].point=0;
c.e[1].point=0;
c.e[0].nom="a";
c.e[1].nom="b";
match(&c.e[0],&c.e[1]);
if((c.e[0].point>c.e[1].point)||((c.e[0].point==c.e[1].point)&&((c.e[0].butpour-c.e[0].butcontre)>(c.e[1].butpour-c.e[1].butcontre)))) {
printf("%s %d\n",c.e[0].nom,c.e[0].point);
printf("%s %d\n",c.e[1].nom,c.e[1].point);
}
else {
printf("%s %d\n",c.e[1].nom,c.e[1].point);
printf("%s %d\n",c.e[0].nom,c.e[0].point);
}
}
Il me met comme erreur
request for member «nom» in something not a structure or union dans la fonction match
incompatible type for argument 2 of «match» dans le main en appelant la fonction
A voir également:
- Faire un classement en C
- Logiciel classement photo gratuit - Guide
- Logiciel de classement de documents gratuit - Télécharger - Bureautique
- Bp classement foot ✓ - Forum Excel
- Signification db classement foot - Forum Mobile
- Classement meilleur ami snap ✓ - Forum Snapchat
22 réponses
ben pour dire si une equipe est 1ere,2eme... c'est pas si simple
je vois que des if else pour comparer tout les clubs
je crois que je vais utiliser une astuce pour associer et le nombre de points et la difference de but
et après je verrai si y'a encore des égalités et si y'en a ca sera pas simple pour résoudre tout ca
je vois que des if else pour comparer tout les clubs
je crois que je vais utiliser une astuce pour associer et le nombre de points et la difference de but
et après je verrai si y'a encore des égalités et si y'en a ca sera pas simple pour résoudre tout ca