Correction d'un exercice en c
mehdocuh77
-
Hxyp Messages postés 401 Date d'inscription Statut Membre Dernière intervention -
Hxyp Messages postés 401 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
SVP corrigez moi cet exercice
Énoncé:
écrire un programme en c permettant de saisir les m notes des n étudiants dans un tableau de deux dimensions(m et n sont des constantes à définir).On suppose que les notes possèdent le même coefficient,calculer la moyenne de chaque étudiant ainsi que la moyenne de la classe.
Ma solution proposé
#include<stdio.h>
#define N 3
#define M 2
float t[N][M];
main()
{double moye=0,moyc=0,sn=0,sm=0;int i,j;
for (j=0;j<M;j++)
{for (i=0;i<N;i++)
do
{printf("donner les notes de chaque etudiant\n");
scanf("%4:2f",&t[i][j]);}while(t[i][j]<0||t[i][j]>20);}
for(i=0;i<N;i++)
{for(j=0;j<M;j++)
sn+=t[i][j];}
moye=sn/N;
sm+=moye;
moyc=sm/M;
printf("la moeyenne de l'etuduiant numero %d est: %f\n",j++,moye);
printf("la moeyenne de la classe est: %f",moyc);
return 0;}
SVP corrigez moi cet exercice
Énoncé:
écrire un programme en c permettant de saisir les m notes des n étudiants dans un tableau de deux dimensions(m et n sont des constantes à définir).On suppose que les notes possèdent le même coefficient,calculer la moyenne de chaque étudiant ainsi que la moyenne de la classe.
Ma solution proposé
#include<stdio.h>
#define N 3
#define M 2
float t[N][M];
main()
{double moye=0,moyc=0,sn=0,sm=0;int i,j;
for (j=0;j<M;j++)
{for (i=0;i<N;i++)
do
{printf("donner les notes de chaque etudiant\n");
scanf("%4:2f",&t[i][j]);}while(t[i][j]<0||t[i][j]>20);}
for(i=0;i<N;i++)
{for(j=0;j<M;j++)
sn+=t[i][j];}
moye=sn/N;
sm+=moye;
moyc=sm/M;
printf("la moeyenne de l'etuduiant numero %d est: %f\n",j++,moye);
printf("la moeyenne de la classe est: %f",moyc);
return 0;}
A voir également:
- Correction d'un exercice en c
- Activer correction automatique android - Guide
- Telecharger clavier français avec correction - Télécharger - Divers Utilitaires
- Le correcteur automatique de votre smartphone vous rend fou ? Voici comment le désactiver - Accueil - Mobile
- Mode correction word - Guide
- Correction transmath 3eme ✓ - Forum Études / Formation High-Tech
1 réponse
Bonjour,
Le problème avec vôtre programme c'est qu'il faille le modifier et le recompiler à chaque changement du nombre d'étudiant ainsi que des notes. Pour passer outre utilisez un tableau de pointeurs :
et allouez l'espace nécessaire sur demande de l'utilisateur, pour le nombre d'étudiants :
puis pour le nombre de notes :
et vous obtenez un double tableau alloué dynamiquement au nombre d'étudiants et de notes nécessaires.
A partir de là il ne vous reste plus qu'à le remplir et à faire la moyenne pour chaque étudiant (tableau[n][m] où n sont les étudiants et m les notes).
Edit : j'avais mis "int **tableau;"... bien entendu c'est "float **tableau;"
pouvait porter à confusion j'en suis désolé..
Le problème avec vôtre programme c'est qu'il faille le modifier et le recompiler à chaque changement du nombre d'étudiant ainsi que des notes. Pour passer outre utilisez un tableau de pointeurs :
float **tableau;
et allouez l'espace nécessaire sur demande de l'utilisateur, pour le nombre d'étudiants :
tableau = malloc(sizeof(float*)*nombredetudiant);
puis pour le nombre de notes :
int i; for(i=0;i<nombredetudiant;i++){ tableau[i] = malloc(sizeof(float)*nombredenote); }
et vous obtenez un double tableau alloué dynamiquement au nombre d'étudiants et de notes nécessaires.
A partir de là il ne vous reste plus qu'à le remplir et à faire la moyenne pour chaque étudiant (tableau[n][m] où n sont les étudiants et m les notes).
Edit : j'avais mis "int **tableau;"... bien entendu c'est "float **tableau;"
pouvait porter à confusion j'en suis désolé..