Expected ‘;’, identifier or ‘(’ before ‘int’
Résolu
A voir également:
- Error: expected identifier or '(' before '{' token
- Or - Guide
- Identifier appareil avec adresse mac - Guide
- Identifier une signature de peintre - Forum Loisirs / Divertissements
- Eespt technical error ✓ - Forum TNT / Satellite / Réception
- Carre or bercy ✓ - Forum Loisirs / Divertissements
2 réponses
Bonjour,
Plusieurs choses ne vont pas :
Une fois corrigé ton programme pourrait ressembler à :
Plusieurs choses ne vont pas :
- tu devrais déclarer les fonctions et les structures avant de les utiliser.
- je te recommande en particulier de commencer ton fichier source par les structures, ensuite les fonctions, ensuite le main ;
- si tu indentes proprement ton code, tu éviteras beaucoup d'erreur (tu devrais également mettre des espaces autour des opérateurs et derrière les
,
et les;
) ; - généralement et à moins de savoir ce qu'on fait, on déclare rarement une structure à l'intérieur d'une fonction ;
- tu inclues des headers qui n'ont aucune raison d'être inclus, car aucune des fonctions qu'ils fournissent ne sont actuellement utiliser dans ton code ;
- lorsque tu déclares une structure, à la fin de sa déclaration, il devrait y avoir un
;
derrière}
(contrairement aux fonctions). - je pense que dans ta deuxième boucle for, tu as utilisé
i
au lieu dej
; - la fonction
sprintf
est mal appelée (voir la documentation en cherchant "man sprintf" dans google ou dans un terminal si tu es sous linux) - comme ta fonction
main
a pour type de retourint
elle devrait en retourner un (par convention 0 quand le programme se termine bien, une valeur non nulle abitraire correspondant au code d'exécution sinon). -
nomStation
est de typechar
alors qu'elle est amenée à stocker une chaîne de caractère. Ce devrait donc soit être un tableau de char pré-alloué suffisamment grand pour accueillir la chaîne de caractère, soit unchar *
alloué dynamiquement (e.g. avecmalloc
). - certains calculs "constants" ne sont pas calculés, c'est un peu bizarre, autant les simplifier.
Une fois corrigé ton programme pourrait ressembler à :
#include <stdio.h> // printf #include <stdlib.h> // srand #include <time.h> // time struct Donnees { char nomStation[30]; double temp[24], precipitation; }; int main(){ srand(time(NULL)); int i, j; struct Donnees t[100]; for (i = 0; i < 100; i++) { sprintf(t[i].nomStation, "station%d", i); for (j = 0; i < 24; i++) { t[i].temp[j] = rand() % 82 + 46; } t[i].precipitation = rand() % 100; } return 0; }