IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Tableau, note moyenne


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2015
    Messages : 26
    Par défaut Tableau, note moyenne
    Bonsoir,

    J'ai un programme qui me permet d'entrer des notes et de calculer la moyenne, mais seulement la moyenne est calculer en éliminant la plus mauvaise note.
    Jusqu'ici j'y arrive, mais après avoir créer ma variable me permettant de calculer la moyenne( en enlevant la plus mauvaise note) on me demande d'afficher le tableaux mais sans la mauvaise note.

    Par exemple : T1[TAILLE] = {18,16,9}

    Nouveaux tableaux : T1[TAILLE] = {18,16} moyenne = (18+16)/2

    Pour l'instant j'ai fais ce programme il marche, il me manque juste d'afficher les notes sans la mauvaise.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    	// note.
     
    	#include <stdio.h>
    	#define TAILLE 10
     
    	int main () {
    	int n,s=0,i,min,max;
    	float T1[TAILLE] = {0}, moy;
     
    	do {
    		printf("Nombre de valeur à fournir (2=<n<=10) ");
    		scanf("%d", &n);
     
    	} while(n<2 || n>TAILLE);
     
    	printf("Définition de T1\n");
    	for(i=0; i<n; i++) {
     
    		printf("Valeur à mettre dans T1[%d] ?\n", i);
    		scanf("%f", (T1+i));
    		s+=*(T1+i);
     
    		}
     
    	max=min= *T1;
     
    	for(i=0; i<n; i++) {
     
    		max = (*(T1+i)>max) ? *(T1+i) : max;
    		min = (*(T1+i)<min) ? *(T1+i) : min;
     
    	}
     
    	printf("\n");
     
    	moy = (s-min)/(n-1);
     
     
    	printf("Notes pris en compte dans la moyenne\n");
     
    	for(i=0; i<n; i++) {
     
    		printf("%.2f\n", *(T1+i));
     
    		}
     
     
    	printf("Moyenne = %.2f\n", moy);
     
    return 0;
    }

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 768
    Par défaut
    Je vois que tu es passé aux tableaux sans avoir appris les structures if

    Et encore les tableaux Tu n'es pas au courant que:
    • *(T1+i) équivaut à T1[i]
    • max=min= *T1; équivaut à max = min= T1[0];
    • scanf("%f", (T1+i)); équivaut à scanf("%f", &T1[i]); (<- à tester celui là )


    Sans parler de float T1[TAILLE] = {0}; que j'aurais codé plus float T1[TAILLE] = {0.0f};.
    Voire float T1[TAILLE]; memset(T1, 0, TAILLE * sizeof(float));

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2015
    Messages : 26
    Par défaut
    Oui je suis au courant héhé j'ai voulu essayer le formalisme pointeur.
    Sinon je ne vois pas comment faire

    ps : pourquoi ma moyenne a toujours une valeur qui n'est pas du genre 10.25 12.75 mais plutôt 10.00 12.00

  4. #4
    Membre actif Avatar de Abacar94
    Homme Profil pro
    L2 Math-informatique
    Inscrit en
    Novembre 2015
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : L2 Math-informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 103
    Par défaut
    Citation Envoyé par sounsoun Voir le message
    Oui je suis au courant héhé j'ai voulu essayer le formalisme pointeur.
    Sinon je ne vois pas comment faire

    ps : pourquoi ma moyenne a toujours une valeur qui n'est pas du genre 10.25 12.75 mais plutôt 10.00 12.00
    déclare min et S comme des float pour voire si sa va marcher

  5. #5
    Membre actif Avatar de Abacar94
    Homme Profil pro
    L2 Math-informatique
    Inscrit en
    Novembre 2015
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : L2 Math-informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 103
    Par défaut
    Citation Envoyé par sounsoun Voir le message
    Bonsoir,

    J'ai un programme qui me permet d'entrer des notes et de calculer la moyenne, mais seulement la moyenne est calculer en éliminant la plus mauvaise note.
    Jusqu'ici j'y arrive, mais après avoir créer ma variable me permettant de calculer la moyenne( en enlevant la plus mauvaise note) on me demande d'afficher le tableaux mais sans la mauvaise note.
    si tu veux tu peux faire sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(i=0; i<n; i++) {
                     if((T1+i)!=min)
    		      printf("%.2f\n", *(T1+i));
     
    		}
    mais là, il y a un autre problème car il peut s’avérer que la note min soit deux ou même toute les trois notes

    tu peut stocker la position du min et faire un T2 de taille n-1 qui va prendre les éléments de T1 excepter celui de l’indice de min


    [/CODE]

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2015
    Messages : 26
    Par défaut
    MERCI!

    Par contre je n'ai pas compris " mais là, il y a un autre problème car il peut s’avérer que la note min soit deux ou même toute les trois notes

    tu peut stocker la position du min et faire un T2 de taille n-1 qui va prendre les éléments de T1 excepter celui de l’indice de min "

    en gros si deux notes min son identique.

    ps : lorsque j'entre 18 16 9 9 comme note j'ai pour moyenne 14 alors que je devrais avoir 17 comment se fait - il ?

  7. #7
    Membre actif Avatar de Abacar94
    Homme Profil pro
    L2 Math-informatique
    Inscrit en
    Novembre 2015
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : L2 Math-informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 103
    Par défaut
    Citation Envoyé par sounsoun Voir le message
    MERCI!

    ps : lorsque j'entre 18 16 9 9 comme note j'ai pour moyenne 14 alors que je devrais avoir 17 comment se fait - il ?
    sais tu comment stocker l'indice de min ?

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2015
    Messages : 26
    Par défaut
    Pas dutout

  9. #9
    Membre actif Avatar de Abacar94
    Homme Profil pro
    L2 Math-informatique
    Inscrit en
    Novembre 2015
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : L2 Math-informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 103
    Par défaut
    on fait quoi ? je te donne un code correcte pour que tu puisse voire ? ou bien tu va essayer

  10. #10
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 768
    Par défaut
    Citation Envoyé par sounsoun Voir le message
    ps : lorsque j'entre 18 16 9 9 comme note j'ai pour moyenne 14 alors que je devrais avoir 17 comment se fait - il ?
    C'est triste d'avoir à poser cette question

    Surtout que c'est ton algo: tu connais le debug? Ah je suis bête tu ne sais déjà pas affiché plus de 2 entiers ni faire une structure si pour afficher ou pas une valeur

    Sinon, en programmation, il faut faire attention aux flottants.
    Par exemple, le test égalité peut renvoyer faux pour 2 flottants "identiques"

  11. #11
    Membre actif Avatar de Abacar94
    Homme Profil pro
    L2 Math-informatique
    Inscrit en
    Novembre 2015
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : L2 Math-informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 103
    Par défaut
    Citation Envoyé par sounsoun Voir le message
    MERCI!


    ps : lorsque j'entre 18 16 9 9 comme note j'ai pour moyenne 14 alors que je devrais avoir 17 comment se fait - il ?

    J'ais un peut bricoler ton code......regarde le bien et pose les question là ta pas compris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    	// note.
     
    	#include <stdio.h>
    	#define TAILLE 10
     
    	int main () {
    	int n,i,j=0;  /* j pour l'indice du min*/
    	float T1[TAILLE],s=0, moy,min=0;
     
    	do {
    		printf("Nombre de valeur à fournir (2=<n<=10) ");
    		scanf("%d", &n);
     
    	} while(n<2 || n>TAILLE);
     
    	printf("Définition de T1\n");
    	for(i=0; i<n; i++) {
    		printf("Valeur à mettre dans T1[%d] ?\n", i);
    		scanf("%f", (T1+i));
    		s+=*(T1+i);
     
    		}
     
    	for(i=0; i<n; i++) {
          if(min>T1[i])
             {min=T1[i];
              j=i;
    		 }
     
    	}
     
    	printf("\n");
     
    	moy = (s-T1[j])/(n-1);
     
     
    	printf("Notes pris en compte dans la moyenne\n");
     
    	for(i=0; i<n; i++) {
                   if(i!=j)
    		        printf("%.2f\n", *(T1+i));
     
    		}
     
     
    	printf("Moyenne = %.2f\n", moy);
     
    return 0;
    }

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2015
    Messages : 26
    Par défaut
    j'ai tester ton code lorsque j'entre 18 16 9 9 j'obtiens comme moyenne 11.33 je devrais avoir 17

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2015
    Messages : 26
    Par défaut
    Merci pour ton aide en tout cas

  14. #14
    Membre actif Avatar de Abacar94
    Homme Profil pro
    L2 Math-informatique
    Inscrit en
    Novembre 2015
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : L2 Math-informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 103
    Par défaut
    Citation Envoyé par sounsoun Voir le message
    Bonsoir,

    J'ai un programme qui me permet d'entrer des notes et de calculer la moyenne, mais seulement la moyenne est calculer en éliminant la plus mauvaise note.
    Jusqu'ici j'y arrive, mais après avoir créer ma variable me permettant de calculer la moyenne( en enlevant la plus mauvaise note) on me demande d'afficher le tableaux mais sans la mauvaise note.

    Par exemple : T1[TAILLE] = {18,16,9}

    Nouveaux tableaux : T1[TAILLE] = {18,16} moyenne = (18+16)/2

    [/CODE]
    J'ai vu mon erreur je devais initialiser min a une grande valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    	// note.
     
    	#include <stdio.h>
    	#define TAILLE 10
     
    	int main () {
    	int n,i,j=0;  /* j pour l'indice du min*/
    	float T1[TAILLE],s=0, moy,min=1000;
     
    	do {
    		printf("Nombre de valeur à fournir (2=<n<=10):");
    		scanf("%d", &n);
     
    	} while(n<2 || n>TAILLE);
     
    	printf("\n******************Définition de T1*************");
    	for(i=0; i<n; i++) {
    		printf("\nValeur à mettre dans T1[%d]:", i+1);
    		scanf("%f", (T1+i));
    		s+=*(T1+i);
    		if(min>T1[i])
               min=T1[i];
    		}
     
    	for(i=0; i<n; i++) {
          if(min==T1[i])
             j++;
    	}
     
    	moy = ((s-(j*min))/(n-j));
     
     
    	printf("\nNotes pris en compte dans la moyenne:");
     
    	for(i=0; i<n; i++) {
                   if(T1[i]!=min)
    		        printf("\n%.2f", *(T1+i));
     
    		}
     
    	printf("\nMoyenne = %.2f", moy);
     
    return 0;
    }

Discussions similaires

  1. un programme de calcul d'une note moyenne mais
    Par Dr walid dans le forum Débuter
    Réponses: 2
    Dernier message: 09/10/2009, 21h28
  2. Tableau croisé moyenne/groupement
    Par Mickael747 dans le forum Excel
    Réponses: 1
    Dernier message: 25/06/2008, 07h39
  3. [Tableaux] Trier un tableau par note moyenne
    Par Jiraiya42 dans le forum Langage
    Réponses: 14
    Dernier message: 23/09/2007, 23h55
  4. [Tableaux] Tableau de notes + moyenne
    Par lordbdp dans le forum Langage
    Réponses: 4
    Dernier message: 19/03/2007, 22h34
  5. Tableau et moyenne mobile
    Par mattoo dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 03/05/2005, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo