Vérification exercice structure de données
Résolu/Fermé[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 7 nov. 2023 à 19:18
- Vérification exercice structure de données
- Supprimer les données de navigation - Guide
- Reinstaller windows sans perte de données - Guide
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Verification de l'identité du serveur impossible - Forum WiFi
- Comment sauvegarder toutes les données de mon téléphone - Guide
3 réponses
Puisqu'on te fournit les fonctions abs() et pgcd(), tu devrais pouvoir écrire toi-même un programme de test pour savoir si ça fonctionne.
Quelle est la règle qui te permet d'écrire:
1/2 + 2/3 = ( 1*3 + 2*2)/(2*3) =7/6
Comment calcule-t-on le ppcm (plus petit commun multiple)?
edit: pas besoin du ppcm si on normalise à la fin. Ce que tu ne fais pas.
Revérifies ta fonction normaliser()
Tu ne parles pas des fractions négatives. Comment traites-tu le nombre 0?
6 nov. 2023 à 19:44
Bonjour,
Dans les réponses que tu as données, il y a plein de petites erreurs que j'ai corrigé dans ton message :
- En anglais : rational, en français : rationnel
- Les types en C s'écrivent en minuscule (int, pas Int)
- Les clauses d'une boucle for sont séparées par des points-virgules, pas des virgules.
- L'instruction return n'est pas une fonction, donc pas besoin de parenthèses
- Attention à l'indentation et aux espaces pour rendre ton code plus lisible.
Les réponses proposées semblent correctes (une fois ces corrections apportées) exceptée celle de la dernière question qui n'a aucun sens.
Par rapport au message de Pierrot :
- Je ne pense pas que les fractions négatives soient un problèmes. Cependant tu peux avoir des représentations un peu bizarres (par exemple un numérateur et un dénominateur négatif). C'est parfaitement correct sur le plan mathématique, mais un peu inhabituel. Généralement seul le numérateur est un entier relatif.
- Cependant, comme le dit Pierrot, tu dois contrôler que le dénominateur est non nul, sinon tu représentes des fractions qui n'ont aucun sens mathématiques.
- Concernant ta dernière question, l'idéal serait d'avoir une variable temporaire qui maintient la meilleure valeur trouvé aux cours des itérations, et la corrigée à chaque itération.
Bonne chance
Modifié le 7 nov. 2023 à 18:23
Salut Steve17_,
Aux remarques de Pierrot et de mamiemando, j'ajouterai que ton message est posté comme si tu n'avais même pas essayé de compiler et d'exécuter ton code.
Tu dois avoir un compilateur C, et tu dois donc t'en servir pour vérifier que :
- ton code compile proprement sans erreurs ni avertissements (avec gcc tu peux lui passer au moins les options -Wall et -Wextra pour obtenir des avertissements utiles)
- ton code fonctionne et se comporte comme tu l'attends
Les membres du forum ne sont pas là pour compiler et te signaler les erreurs ou avertissements générés lors de la compilation (ton compilateur le fait mieux que nous), ni pour observer le comportement du programme par rapport à ce que tu attends (tu le sais mieux que nous).
Une fois que tu as fait cela, si tu as toujours un problème que tu n'arrives pas à résoudre après avoir tenté de le résoudre, indique précisément quel est le problème en question :
- une erreur de compilation ou un avertissement que tu n'arrives pas à corriger : copie colle ces erreurs ou avertissements et le code qui les génère et poste ta question
- un code qui ne se comporte pas comme tu l'attends : poste le code concerné, ce que tu attends en termes de comportement, et le comportement erroné que tu constates
7 nov. 2023 à 19:18
Sinon, à mon sens, tu fais un mauvais usage de l'instruction typedef en réponse à la question 1.
on te dit :
Le type rationnal est défini par la structure :
struct rational {
int n;
int d;
};
et on te demande : 1. Proposer une instruction permettant de définir rational comme synonyme de *struct rational*
Ce que tu fais dans ta réponse :
typedef struct { int n; int d; } rational;
c'est que tu crées un nouveau type struct (sans étiquette) dans une instruction typedef chaînant la création du type et celle de son alias. Or, ce qu'on te demande, c'est d'utiliser le type "struct rational" existant pour créer un alias de ce type avec typedef.
Un programme qui fait ceci serait :
struct rational { int n; int d; }; typedef struct rational rational; int main(void) { return 0; }