Erreur : Algo2.exe a cessé de fonctionné
Résolu
Tydher
Messages postés
123
Date d'inscription
Statut
Membre
Dernière intervention
-
Tydher Messages postés 123 Date d'inscription Statut Membre Dernière intervention -
Tydher Messages postés 123 Date d'inscription Statut Membre Dernière intervention -
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 !
A voir également:
- Erreur : Algo2.exe a cessé de fonctionné
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
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.
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 !
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 !