Où est l'erreur dans mon programme?
adibou92
-
pom -
pom -
bonjour voila g doi fai un prog qui permet de rentrer des note d'eleve est de calculer la moy
voici mon prog
#include<stdio.h>
#define nbr 150
int main(void)
{
/*programme moyenne*/
int i,n;
float somme,moy,tab[n];
somme=0;
printf("combien de note voulez vous?");
scanf("%d", &n);
for (i=0;i<n;i++){
printf("quel est la note?\n");
scanf("%i",&tab[i]);
somme=somme+tab[i];
}
moy=somme/n;
printf("le résultat est :");
fflush(stdin);
scanf("%f",&moy);
fflush(stdin);
getchar();
}
je narrive pas a trouver mon erreur car cher moi le log le compile mais narrive pas a lexecuter merci d'avance pour votre aide
voici mon prog
#include<stdio.h>
#define nbr 150
int main(void)
{
/*programme moyenne*/
int i,n;
float somme,moy,tab[n];
somme=0;
printf("combien de note voulez vous?");
scanf("%d", &n);
for (i=0;i<n;i++){
printf("quel est la note?\n");
scanf("%i",&tab[i]);
somme=somme+tab[i];
}
moy=somme/n;
printf("le résultat est :");
fflush(stdin);
scanf("%f",&moy);
fflush(stdin);
getchar();
}
je narrive pas a trouver mon erreur car cher moi le log le compile mais narrive pas a lexecuter merci d'avance pour votre aide
A voir également:
- Où est l'erreur dans mon programme?
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Message programmé - Guide
- Mettre en veille un programme - Guide
- Desinstaller un programme - Guide
3 réponses
Salut, je n'ai jamais fait de C mais je fais du C++. Je pense que l'erreur vient de
int i,n;
float somme,moy,tab[n];
Dans un tableau tu dois avoir une taille CONSTANTE. Donc tu devrais mettre :
const int n;
Mais tu dois définir la valeur de n car sinon je crois que par défaut il va faire n=0 (ou sinon il te mettra une valeur par défaut).
Donc je te propose :
int i;
const int n=nombre de note que tu veux
Si ceci ne t'aide pas, envoie nous ton erreur renvoyée par ton compilo.
Salut
Pierre-Lin
int i,n;
float somme,moy,tab[n];
Dans un tableau tu dois avoir une taille CONSTANTE. Donc tu devrais mettre :
const int n;
Mais tu dois définir la valeur de n car sinon je crois que par défaut il va faire n=0 (ou sinon il te mettra une valeur par défaut).
Donc je te propose :
int i;
const int n=nombre de note que tu veux
Si ceci ne t'aide pas, envoie nous ton erreur renvoyée par ton compilo.
Salut
Pierre-Lin
Effectivement, Pierre_Lin a raison, la dimension du tableau doit être constante.
mais cependant, la déclaration const int n=nombre, t'es sûr que ça marche?
et qu'est ce qui est sencé faire la commande fflush?
maya80
mais cependant, la déclaration const int n=nombre, t'es sûr que ça marche?
et qu'est ce qui est sencé faire la commande fflush?
maya80
Salut maya80,
je suis sûr à 100% que const int n = 50 marche (meme si en c++ il est très facile de modifier un objet constant...)
En revanche ce qui ne marche pas est
const in n; // tu as envie de déclarer n comme un entier constant
n=50;
normalement ceci ne doit meme pas compiler car si n est constant et qu'ensuite tu fais n=50 donc tu le modifies donc il n'est plus constant...
Pom
je suis sûr à 100% que const int n = 50 marche (meme si en c++ il est très facile de modifier un objet constant...)
En revanche ce qui ne marche pas est
const in n; // tu as envie de déclarer n comme un entier constant
n=50;
normalement ceci ne doit meme pas compiler car si n est constant et qu'ensuite tu fais n=50 donc tu le modifies donc il n'est plus constant...
Pom
#include<stdio.h>
#define N 150
int main(void)
{
/*programme moyenne*/
int i,n;
float somme,moy,tab[N];
somme=0;
printf("combien de note voulez vous?");
fflush(stdin);
scanf("%d", &n);
for (i=0;i<n;i++){
printf("quelle est la note?\n");
scanf("%f",&tab[i]);
somme=somme+tab[i];
}
moy=somme/n;
printf("%f",moy);
fflush(stdin);
getchar();
}