Erreur : Algo2.exe a cessé de fonctionné
Résolu
Tydher
Messages postés
127
Statut
Membre
-
Tydher Messages postés 127 Statut Membre -
Tydher Messages postés 127 Statut Membre -
Bonjour à tous.
Le but de mon algo (nommé Algo2.exe) en C est de saisir une suite de valeur et d'afficher
le plus petit,
le nombre de valeurs nulle
et la moyenne des nombres positifs
Cependant, lors de l'exécution, j'ai un message me disant que l'algo a arrêter de fonctionner. J'arrive a saisir les valeurs mais aucun résultats ne s'affiche, seul la fenetre avec message d'erreur apparait.
Voila le code :
//EAP de saisir les valeurs d'une suite d'entiers et d'afficher :
// le plus petit nombre
// le nombre de valeur nulle
// la moyenne des nombres positifs
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
int nbelem, min, total, moyenne, j, valnulle, i, val; // j est un compteur de nombre positifs
//Saisi du nombre d'elements de la suite
printf("Saisir le nombre d'elements \n");
scanf("%d", &nbelem);
//initialisation
min = 0;
total = 0;
j = 0;
valnulle = 0;
//Pour i de 1 a nombre d'elements faire ...
for(i=1;i<=nbelem;i++)
{
//Saisir une valeur
printf("Saisir une valeur \n");
scanf("%d", &val);
//Si elle est inferieur a 0
if(val < 0)
{
// Si elle est inferieur a min
if(val<min)
{
min = val;
}
}
//Si elle est egal a 0
if(val == 0)
{
valnulle = valnulle + 1;
}
// Si elle est superieur a 0
if(val > 0 )
{
total = total + val;
j = j + 1;
}
}
//affichage des resultats
if(min=0)
{
printf("Il n'y a pas de nombre negatif");
}
if(j=0)
{
printf("Aucune valeur positive");
}
else
{
moyenne = total / j;
}
printf("la valeur minimum est %d , le nombre de nulle est %d , la moyenne est %d", min, valnulle, moyenne);
system("pause");
}
Voila l'erreur en question :
http://imageshack.com/f/bgerreuryj
Je suis a votre disposition en cas de question.
Merci d'avance !
Le but de mon algo (nommé Algo2.exe) en C est de saisir une suite de valeur et d'afficher
le plus petit,
le nombre de valeurs nulle
et la moyenne des nombres positifs
Cependant, lors de l'exécution, j'ai un message me disant que l'algo a arrêter de fonctionner. J'arrive a saisir les valeurs mais aucun résultats ne s'affiche, seul la fenetre avec message d'erreur apparait.
Voila le code :
//EAP de saisir les valeurs d'une suite d'entiers et d'afficher :
// le plus petit nombre
// le nombre de valeur nulle
// la moyenne des nombres positifs
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
int nbelem, min, total, moyenne, j, valnulle, i, val; // j est un compteur de nombre positifs
//Saisi du nombre d'elements de la suite
printf("Saisir le nombre d'elements \n");
scanf("%d", &nbelem);
//initialisation
min = 0;
total = 0;
j = 0;
valnulle = 0;
//Pour i de 1 a nombre d'elements faire ...
for(i=1;i<=nbelem;i++)
{
//Saisir une valeur
printf("Saisir une valeur \n");
scanf("%d", &val);
//Si elle est inferieur a 0
if(val < 0)
{
// Si elle est inferieur a min
if(val<min)
{
min = val;
}
}
//Si elle est egal a 0
if(val == 0)
{
valnulle = valnulle + 1;
}
// Si elle est superieur a 0
if(val > 0 )
{
total = total + val;
j = j + 1;
}
}
//affichage des resultats
if(min=0)
{
printf("Il n'y a pas de nombre negatif");
}
if(j=0)
{
printf("Aucune valeur positive");
}
else
{
moyenne = total / j;
}
printf("la valeur minimum est %d , le nombre de nulle est %d , la moyenne est %d", min, valnulle, moyenne);
system("pause");
}
Voila l'erreur en question :
http://imageshack.com/f/bgerreuryj
Je suis a votre disposition en cas de question.
Merci d'avance !
2 réponses
-
Division par zéro : il manque un = dans ta condition ... Là tu affectes j à 0, et vu que c'est faux, il va dans le else et divise avec la nouvelle valeur de j.
if(j==0) printf("Aucune valeur positive"); else moyenne = total / j;On voit quand même pas ça souvent ...
Pour le reste de ton programme :
- Quand tu incrémentes une variable, fais variable++; c'est plus clair.
- Quand tu fais une opération telle que variable=variable*2;, fais variable*=2;, pour la même raison.
- Indente ton code : là c'est un tout petit programme, mais prends déjà les bonnes habitudes sinon tu te perdras vite dans des programmes plus volumineux ...
Google is your best friend
VB.NET is good ... VB6 is better ! -
Merci beaucoup de ta réponse, sa marche impec, avec les modifications précisées.