Been getting some help from you guys and i really appreciate it and hope some1 will have some idea y i'm getting oddities
Here's my code and i'll explain in between.
Well as i'm tryin some numbers, i found out that in my sexe table, there's 1 female no matter what...
say for instance i put 2 animals
and input the info for the animals, the print out will be 1 male one female, despite entering info for 2 males...
the calculation for the average age, ageMoyen, is just not workin 1 bit...
i'm sure i have issues with my loops there but can't really pin point where it might be.
any help is greatly appreciated :)
Marc
Here's my code and i'll explain in between.
Code:
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #define HAUTEUR 30.0 #define POIDS 1.0 int main() { // initialisation des variables int nbrAnimaux=0; // Valeur que specifie l'usager pour creer les tableaux int nbrMale=0; // compteur animaux males int nbrFemelle=0; // compteur des femelles int nbrMaleG=0; // compteur des animaux > 30cm de longueur int nbrFemelleL=0; // compteur des femelles < 1kg int i, j; // compteur boucle int ageM=0; int ageMoyenM=0; // age total et moyen des males int ageF=0; int ageMoyenF=0; // age total et moyen des femelles int plusCourte=0; int plusLongue=0; char condition; // Oui ou Non float taille[nbrAnimaux], poids[nbrAnimaux]; int age[nbrAnimaux]; char sexe[nbrAnimaux]; nbrMale = 0; nbrFemelle = 0; nbrMaleG = 0; nbrFemelleL = 0; // Boucle do ... while, pour ne pas devoir repartir le programme pour chaque calcul do { nbrFemelle=0; nbrMale=0; // Saisi et lecture des donnees printf("SVP entrez le nombre d'animaux pour vos calculs:\n"); scanf("%d", &nbrAnimaux); // printf("Maintenant, SVP entrez les details comme ceci, \nSexe (M/F), Age, Poids et Longueur\n"); // for (i=0; i < nbrAnimaux; i++) { // printf("tableau sexe: %c\n", &sexe[i]);} for (i = 0; i < nbrAnimaux; i++) { fflush(stdin); printf("Animal %d\n", i+1); printf("entrez sexe (M/F)\n"); scanf("%c", &sexe[i]); printf("entrez l age en jours\n"); scanf("%d", &age[i]); printf("entrez le poids en kg\n"); scanf("%f", &poids[i]); printf("entrez la longueur en cm\n"); scanf("%f", &taille[i]); } for (j = 0; j < nbrAnimaux; j++) { if (toupper(sexe[j]) == 'M' && taille[j] > HAUTEUR) // Compter les males > 30cm de long nbrMaleG++; if (toupper(sexe[j]) == 'F' && poids[j] < POIDS) // Compter les femelles < 1k de poids nbrFemelleL++; if (sexe[j] == 'M') // ajouter l'age des males et femelles ageM += age[j]; else ageF += age[j]; if (toupper(sexe[j]) == 'M') // Compter les males et femelles nbrMale++; else nbrFemelle++; } ageMoyenM == ageM / nbrMale; ageMoyenF == ageF / nbrFemelle; printf("Non demande\n"); printf("===========\n"); printf("Nombre de males: %d\n", nbrMale); printf("Nombre de femelles: %d\n", nbrFemelle); printf("Demande\n"); printf("=======\n"); printf("Nombre de males mesurant plus de 30cm: %d\n", nbrMaleG); printf("Nombre de femelles pesant moins de 1kg: %d\n", nbrFemelleL); printf("Age moyen des males: %d et l\'age moyen des femelles: %d", ageMoyenM, ageMoyenF); // debug // for (i = 0; 1<nbrAnimaux; i++) // printf ("a la case %d, le sexe est %c, l'age est %d, le poids est %f et la longueur est %f", i, sexe[i], age[i], poids[i], taille[i]); // end debug // Condition requise pour repartir du début printf ("\nVoulez vous faire un autre calcul, (o/n)?"); fflush (stdin); // Fonction pour vider stdin condition = toupper(getchar()); // Capitaliser la letter et soumettre à condition } while ( condition == 'O'); // Repartir du début si O // fin du do while restart }
say for instance i put 2 animals
and input the info for the animals, the print out will be 1 male one female, despite entering info for 2 males...
the calculation for the average age, ageMoyen, is just not workin 1 bit...
i'm sure i have issues with my loops there but can't really pin point where it might be.
any help is greatly appreciated :)
Marc
Comment