Expected ‘;’, identifier or ‘(’ before ‘int’
Résolu/Fermé
Arkoy
-
Modifié le 8 févr. 2022 à 15:30
mamiemando Messages postés 33357 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 14 novembre 2024 - 9 févr. 2022 à 14:28
mamiemando Messages postés 33357 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 14 novembre 2024 - 9 févr. 2022 à 14:28
A voir également:
- Error: expected ‘;’, identifier or ‘(’ before ‘int’
- Identifier appareil avec adresse mac - Guide
- Network error ✓ - Forum Réseaux sociaux
- Network error iptv - Forum Réseaux sociaux
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- Eespt technical error ✓ - Forum TNT / Satellite / Réception
2 réponses
mamiemando
Messages postés
33357
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
14 novembre 2024
7 799
8 févr. 2022 à 15:43
8 févr. 2022 à 15:43
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; }
Bonjour mamiemando.
Merci beaucoup pour toutes les réponses et conseils apportés, et de la correction !
Je les appliquerai pour la suite de mon apprentissage.
Je vous souhaite une très agréable journée !
Merci beaucoup pour toutes les réponses et conseils apportés, et de la correction !
Je les appliquerai pour la suite de mon apprentissage.
Je vous souhaite une très agréable journée !
mamiemando
Messages postés
33357
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
14 novembre 2024
7 799
9 févr. 2022 à 14:28
9 févr. 2022 à 14:28
Merci pour ton retour, bonne continuation et bon apprentissage :-)