tableau et structure - C - Programmation
Marsh Posté le 02-02-2007 à 23:28:49
nuleninfo20 a écrit : Il est evident que si une ame charitable se devoue pour me faire les deux exos je ne peux que plussoyer. |
Marsh Posté le 02-02-2007 à 23:33:23
je sais que j'en demande beaucoup mais la je sature çà fait trois jours que je galere sanns avancer d'un poil donc bon çà va vous prendre quoi une demi-heure à tout casser si vous etes bons et grace a vous j'aurais une bonne note et vous aurez toute ma sympathie
#include <stdio.h>
#include <stdlib.h>
void SaisirHisto (int t[5]) ;
int main()
{
int tableau[5];
SaisirHisto(tableau);
system("pause" );
return 0;
}
/* procédure */
void SaisirHisto (int t[5])
{
float n ;
do {
printf("veuiller entrer des mesures reellles positives comprises entre 0,0 et 10,0 et pour terminer la saisie entrer un nombre negatif\n",n);
scanf("%g", &n);
}while (10.0>n>0.0);
if (n<0) {
int i;
for (i=0;i<5;i++) {
printf("]%d,%d]:",2*i,2*(i+1));
}
}}
donc la je comprend pas pourquoi quand je met un nbre negatif çà s'arete pas
et quand je teste avec while ben çà bug si je met un nbre a virgule
Marsh Posté le 02-02-2007 à 23:55:24
Avec du code, c'est mieux; 10.0>n>0.0 ne marchera jamais en C. (edit: dans le sens où tu l'as mis)
Le résultat de x>n (ou x<n) est un booléen, donc lorsque tu compares un booléen avec l'autre valeur, tu as en général des surprises.
Rappelles toi tes cours sur les if
Marsh Posté le 03-02-2007 à 13:03:24
ReplyMarsh Posté le 03-02-2007 à 13:19:13
nuleninfo20 a écrit : c'est bon j'ai fini l'exo 1 me reste plus que le 3 |
Salaires minimums et maximums ?
Tu balayes tes 30 employés. Dès que t'as un salaire inférieur au plus petit déjà mémorisé
Idem pour le salaire supérieur
En fin de boucle, tu affiches le nom correspondant à la position mémorisée pour le plus petit. Idem pour le plus grand. Ou bien, en imaginant qu'il pourrait y avoir plusieurs noms correspondants, tu oublies l'histoire de mémoriser la position mais tu refais une boucle de traitement et dès que tu trouves un salaire correspondant au plus petit tu affiches le nom correspondant. Idem pour le plus grand.
Marsh Posté le 03-02-2007 à 13:46:36
ReplyMarsh Posté le 03-02-2007 à 14:28:39
nuleninfo20 a écrit : Sinon faut que j'utilise quoi pour avoir les 30 personnes au debut |
L’objectif de cet exercice est de vous faire manipuler un tableau de structure. Pour cela on utilisera un tableau personnel de 30 personnes, pour décrire le personnel d’une entreprise.
Constante N = 30
Type salarie = Structure
nom : Chaîne
salaire : Réel
FinStructure
nuleninfo20 a écrit : ...bon çà va vous prendre quoi une demi-heure à tout casser si vous etes bons... |
En fait, c'est faisable en un peu plus de 15 minutes parce qu'il faut aussi penser à mettre des commentaires mais le but de cet exo n'est pas qu'on te prouve qu'on est bon, le but de cet exo est que toi tu apprennes à devenir bon comme nous...
Marsh Posté le 03-02-2007 à 14:49:08
Code :
|
çà m'affiche rien pourquoi ? Y a pas d'ereur à la compilation pourtant
Marsh Posté le 03-02-2007 à 15:15:49
je comprends vraiment pas ce que tu veux faire avec tes scanf ; si tu demandes à l'utilisateur de rentrer "moyenne" et que tu l'affiches juste après, les calculs précédents servent à rien...
Marsh Posté le 03-02-2007 à 15:35:28
effectivement vous avez raison je l'ai modifié mais çà marche toujours pas
Marsh Posté le 03-02-2007 à 15:42:55
nuleninfo20 a écrit :
|
Un peu de réflexion ne nuit absolument pas à la réussite de l'exercice. Pourquoi définir une structure contenant "N" salaires et "N" noms ?
Le but d'une structure est de regrouper ensembles sous un nom global des items qui vont ensembles. Effectivement un nom est associé à un salaire. Ensuite, puisque tu as "N" employés il te faut "N" éléments de type "MaStructure". Ce sera plus facile que d'avoir un élément contenant "N" salaires et "N" noms. Surtout que l'énoncé parle d'un tableau de structures et non d'une structure contenant des tableaux !!!!
PS: Essaye de donner à ta structure un nom en harmonie avec son rôle. Puisqu'elle est sensée gérer un employé, tu pourrais l'appeler par exemple "struct s_employe"...
Marsh Posté le 03-02-2007 à 16:01:06
Code :
|
mouais mais non çà n'affiche topujours rien
Marsh Posté le 03-02-2007 à 16:11:25
nuleninfo20 a écrit :
|
C'est quoi ce "int tab[TAILLE]" dans ton main ??? Il te faut quoi exactement ? Un tableau d'entiers ou un tableau d'employés ???
1) commence par définir ta structure en dehors de toute fonction => toute fonction connaîtra sa composition
2) écrits ton main, définis-y ton tableau d'employés déjà remplis de noms et salaires (tu dois connaître la syntaxe pour préremplir une structure ainsi que la syntaxe pour préremplir un tableau donc préremplir un tableau de structures c'est regrouper les 2 syntaxes)
3) entraine-toi à les manipuler (affiche-les par exemple).
Puis, ensuite, écrits tes fonctions particulières une après l'autre et teste-les de façon individuelle...
Marsh Posté le 03-02-2007 à 16:41:39
ReplyMarsh Posté le 03-02-2007 à 18:16:12
nuleninfo20 a écrit : pff je comprend rien là... |
Préremplir un tableau de "int": int tab[5]={1, 2, 3, 4, 5};
Préremplir une structure contenant un nom (chaîne de caractères) et un salaire (double): struct s_truc elem={"Nom", 123.45};
Préremplir un tableau de structures du type ci-dessus:
struct s_truc tab_elem[3]={ |
Mais peut-être que je me trompe et que le tableau des employés doit être saisi au clavier et non prérempli (voir énoncé). De toute façon ce n'est pas la façon dont a été rempli la structure qui compte, c'est la façon de la traiter. Si elle est remplie ça peut faire un jeu d'essai sinon tant pis...
nuleninfo20 a écrit :
|
Je ne comprends pas pourquoi tu calcules une moyenne que tu écrases juste en dessous par une saisie
Marsh Posté le 04-02-2007 à 20:59:05
j'ai corrigé quelques trucs maintenant le pb c'est que je sais pas comment faire pour definir les 30 personnes et 30 salaires
Code :
|
Marsh Posté le 04-02-2007 à 21:47:17
Sve@r a écrit : Je ne comprends pas pourquoi tu calcules une moyenne que tu écrases juste en dessous par une saisie |
+1, je l'ai deja signalé plus haut...
Marsh Posté le 02-02-2007 à 22:54:24
Bonjour et merci d'avance pour votre aide précieuse.
je debute a peine le semestre 2 de L1..
essayer de faire un truc pas trop compliqué
Ne vous inquietez pas si c'est si long c'est juste quelques points qui me pose probleme dans ces exos.
Dans le premier exo, je sais comment faire pour determiner le plus petit et le plus grand salaire.
Lobjectif de cet exercice est de vous faire manipuler un tableau de structure. Pour cela on
utilisera un tableau personnel de 30 personnes, pour décrire le personnel dune entreprise.
Constante N = 30
Type salarie = Structure
nom : Chaîne
salaire : Réel
FinStructure
variable personnel : Tableau[1..N] de salarie
Le programme que vous devez réaliser en langage C devra, à partir du tableau personnel,
afficher :
a) les noms de tous les salariés qui ont un salaire strictement supérieur au SMIC (qui est de
12541,31 )
b) le salaire moyen
c) le nom du salariés ou des salariés ayant le salaire minimal et les noms de celui ou ceux
ayant le salaire maximal.
Réaliser un programme qui réponde à ce cahier des charges en adoptant une approche modulaire :
décomposer le problème en sous problèmes (procédure ou fonction), test unitaire, test
dintégration, séparation en plusieurs fichiers, etc.
Message édité par nuleninfo20 le 03-02-2007 à 13:02:51