Où est l'erreur dans mon programme?

Fermé
adibou92 - 4 nov. 2004 à 21:59
 pom - 9 nov. 2004 à 13:22
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

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
0
voila mon erreur il faut definir en faite d'abor le nbr de case est ensuite le nombre de note o dépar g mélangait les 2 car c t la premiere foi k jutiliser un tableau merci pour votre message voila mon nouveau prog qui fonctionne si cela vs interresse
#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();

}
0
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
0
la commande fflush permet de vider la memoir tempon du clavier g commence le C depuis 3 semaine a peine et notre prof ns soul pour le mettre donc g c pas trop .Apparament ca doi servir ?
il fau mettre cette commande apres chaque demande d'affichage
0
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
0
Je suis contente que ça a marché.
Moi par contre, ça fait longtemps que je n'ai pas fais du C, j'ai tendance à oublier un peu.
Bon courage.
0