Erreur de syntaxe... [C] - C++ - Programmation
Marsh Posté le 07-12-2002 à 21:14:53
Ce typedef struct est tout à fait correct !
Pas besoin d'y coller un nom
Marsh Posté le 07-12-2002 à 21:17:16
Le problème est que tu n'as pas déclaré ton tableau.
T n'est pas un tableau, c'est juste un raccourci pour dire "tableau de 9 objets de ma struct"
Essaye comme ça :
typedef struct {
char nom[20];
int region[98];
float ChAff;
} montype;
montype T[MAX];
Mais si tu relis ton code, tu auras d'autres surprises : il manque un '}'...
Marsh Posté le 07-12-2002 à 21:22:36
ce que je veux dire c'est que ici, le but ce n'est pas de définir un type mais d'instancier un tableau de MAX structure.
Code :
|
Marsh Posté le 08-12-2002 à 11:37:03
Marsh Posté le 08-12-2002 à 11:39:46
ReplyMarsh Posté le 08-12-2002 à 11:40:51
topic edité
y'a une 2e erreur
Marsh Posté le 08-12-2002 à 11:44:16
Taz@PPC a écrit : aujourd'hui dimanche, nous avons un gagant qui confond pointeur et tableau et qui ne sait pas copier un tableau dans un autre |
le C c pas ma tasse de Thé
Marsh Posté le 08-12-2002 à 11:48:53
Code :
|
regin est un tableau donc pas une l-value c'est à dire que ca peut pas etre a gauche d'un '='
puisqu'apparemment tu ne connais pas les pointeurs, on va faire simple.
ici ce que tu veux c'est permuter 2 tableaux, donc tu passes par un tableau temporaire: en tout il y a 3 copies. mais la copie de tableau en C ce n'est pas une affectation (deja parce qu'avec des tableaus le = ne marche po), c'est la recopie élément par élément.
du genre une petite fonction
Code :
|
il existe des routines optimisées en C, mais tu as tout le temps de découvrir ça.
Marsh Posté le 08-12-2002 à 11:53:08
Taz@PPC a écrit :
|
merci , c pas gagner
Marsh Posté le 08-12-2002 à 11:57:10
est ce que tu comprends déjà?
sinon, plus compliqué, tu as dans string.h la fonction memcpy, beaucoup plus rapide
Code :
|
Marsh Posté le 08-12-2002 à 12:02:33
Taz@PPC a écrit : est ce que tu comprends déjà?
|
jsuis en train d'essayer de decortiquer ton post precedent
Marsh Posté le 09-12-2002 à 00:43:23
Code :
|
C'est pour t'aider à comprendre .
Non, sérieux, pourquoi il n'y a pas des trucs comme ça en standard ?
Marsh Posté le 10-12-2002 à 02:29:46
Non non.
On est en C ici, il faut être courageux et assumer les horreurs nécessaires.
Et encore, j'ai pas tout mis.
Mais bien masqué dans un header, je t'assure que c'est plus propre.
Marsh Posté le 07-12-2002 à 20:34:09
------------------------------
1er probleme :
j'obtiens cette erreur , dans les lignes surlignées en noir , ca vient de koi ??
Parse Error Before "T"
[PROBLEME RESOLU]
-----------------------------------
2e probleme :
incompatible types in assignment
j'obtiens cette erreur sur les 3 lignes surlignés en rouge...
---------------------------------------
#include <stdio.h>
#define MAX 9
typedef struct {
char nom[20];
int region[98];
float ChAff;
} T[MAX] ;
void Tri() {
int p[98];
int i=0;
for (i=0 ; i < MAX ; i++ ) {
if (T[i].region > T[i+1].region) {
p = T[i].region;
T[i].region = T[i+1].region;
T[i+1].region = p;
}
}
}
void Aff_reg() {
int i=0 ;
int reg = T[i].region ;
float s = 0;
while (T[i].region != "" ) {
if (T[i].region == reg) {
s = T[i].chAff;
}
else {
printf("Total region %d = %f\n" , T[i].region ; s);
reg = T[i].region;
s=0 ;
}
i++;
}
main() {
Tri();
Aff_reg();
}
Message édité par raph93 le 08-12-2002 à 11:51:36
---------------
Nothing can stop me, I'm never satisfied, I take what i want, refuse to be denied...