[Langage C]Ce programme ne se lance pas ?

Fermé
amazigh - 17 nov. 2004 à 09:33
 123344556 - 1 juin 2011 à 18:32
Bonjour,
Après avoir compilé ce programme avec Borland turbo C, je le lance et rien ne se passe ?

Ce programme lit 5 notes et indique combien d'entre elles sont supérieures à la moyenne de 5 notes.
Merci de votre aide

#include<stdio.h>
#include<conio.h>
void main()
{
float notes[5],somme,moyenne;
int nb,i;

/*Lecture des notes*/
printf ("Donnez vos 5 notes :\n");
for (i=0 ; i<5 ; i=i+1)
scanf("%f",¬es[i]);

/*Calcul de leur moyenne*/
somme=0;
for (i=0 , i<5 ; i=i+1)
somme=somme+notes[i];
moyenne=somme/5;

/*Comptage nb notes > moyenne*/
nb=0;
for (i=0 ; i<5 ; i=i+1)
if (notes[i] > moyenne) nb=nb+1;

/*Affichage des résultats*/
printf("Il y a %d notes > à la moyenne %9.2f",nb,moyenne);

puts ("Appuyer sur une touche pour continuer...");
getch();
}

6 réponses

je te propose une solution sans garantie :

Certaine fois la fonction getch(); ne sert pas a grand chose...
remplace le par system("pause");

Cette fonction est dans la bibliothèque "stdlib.h" en conséquent tu devra l'additionné a ta liste de bibliothèque à l'en-tete de ton programme ;) bonne chance.
0
Modification du prg car le ET commerciale n'est pas validé par CCM


/*Lecture des notes*/
printf ("Donnez vos 5 notes :\n");
for (i=0 ; i<5 ; i=i+1)
scanf("%f",¬es[i]); -----> scanf("%f",symbole et commercialnotes[i]);
0
Il te manque la bibliothèque string.h (encore que conio.h je ne sais plus ce qu'elle contient) pour utiliser puts et à la place de getch, utilises getchar (par expérience).
Je te conseille de mettre des accolades { } pour délimiter le contenu à exécuter dans tes boucles for parce que au niveau du calcul de la moyenne, ce n'est pas trop ca. ;)
Dans la déclaration de tes variables, utilises des unsigned parce que tes valeurs ne seront pas négatives.
0
Merci de votre aide mais ça ne marche toujours pas.

Le problème ne viendrait-il pas de FLOAT ?
0
ce code fonctionne je viens de le tester

#include <stdio.h>
#include <string.h>

int main (){
float notes[5], somme=0,moyenne=0;
unsigned int i,nb=0;

printf("\nDonner vos 5 notes: \n");
for(i=0;i<5;i++){
printf ("entrer nombre: %d ",i);
scanf("%f",&moyenne);
notes[i]=moyenne;
fflush(stdin);
printf ("\n");
}
printf("Calcul de la somme\n");
for(i=0;i<5;i++){
somme = somme + notes[i];
}
moyenne = somme / 5;

for (i=0; i<5;i++){
if(notes[i] > moyenne){
nb = nb + 1;
}
}
printf("il y a %d notes au dessus de la moyenne qui est a %f \n",nb,moyenne);
puts ("Appyueer sur une touche");
# getchar();
return;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
le même en plus court:
#include <stdio.h>
#include <string.h>

int main (){
float notes[5], somme=0,moyenne=0;
unsigned int i,nb=0;

printf("\nDonner vos 5 notes: \n");
for(i=0;i<5;i++){
printf ("entrer nombre: %d ",i);
scanf("%f",&moyenne);
notes[i]=moyenne;
fflush(stdin);
somme += moyenne;
printf ("\n");
}
moyenne = somme / 5;

for (i=0; i<5;i++){
if(notes[i] > moyenne){
nb ++;
}
}
printf("il y a %d notes au dessus de la moyenne qui est a %f \n",nb,moyenne);
puts ("Appyueer sur une touche");
return;
}
0
Chez moi il y a l'erreur suivante au ninveau de return;
Function should return a value in function Main()

Pour info j'utilise le compilateur Borland Turbo C
0
ben oui , c normal g fait un " int main()" et je fais un return de rien. Fait "return 0" si tu veux mais j'ai compilé ca sous linux donc ca fontionne tel quel. Pour windows, fais plutôt "void main()" et enlèves le "return".
0
amazigh > Super-C
17 nov. 2004 à 14:24
Merci ça marche
Désolé mais je débute en C
0
Super-C > amazigh
17 nov. 2004 à 14:47
il faut bien débuter un jour ^^
Et en plus il y a des différences entre le C sous windows et sous le pinguin.
0
il faut mettre return 0
0