Partage
  • Partager sur Facebook
  • Partager sur Twitter

{{Titre incorrect}} probleme si il vous plait

13 mai 2011 à 21:33:58

Voila j'ai realisé un proramme calculatrice pour les additions, les soustractions , les multiplication et les divisions ainsi que les puissance. Mais voila, le debugger ne trouve aucun probleme, seulement quand je lance la calculatrice peu de temps apres, windows me met la fenetre comme quoi le programe doit fermer car il a rencontrer une erreur, si quelqu'un pourrait m'aider s'il vous plait

p.s.: desole si je faits des fautes d'orthographe, je suis deslexique, merci




#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
int resultat = 0;
int operation = 0;
int nombredenombre = 0;
double nombre1 = 0;
double nombre2 = 0;
double nombre3 = 0;
double nombre4 = 0;
double nombre5 = 0;
double nombre6 = 0;
double nombre7 = 0;
double nombre8 = 0;
double nombre9 = 0;
printf("Bienvenue, quel operation voulez-vous faire?\n\n");
printf("1. pour l'additon\n\n2.pour la soustraction\n\n3.pour la multiplication\n\n4.pour la division\n\n5.pour une puissance, un carre ou un cube\n");// on demande quel operation on veut effectuer
scanf("%d", operation);
switch (operation)
{
case 1:
printf("Ah, vous avez choisit l'addition!\n\nChoisissez le nombre de nombre que vous voulez additionnez:\n1. 2nombre\n2. 3nombre\n3. 4nombre\n4. 5nombre\n5. 6nombre\n6. 7nombre\n7. 8nombre\n8. 9nombre\n");//on demande le nombre de nombre
scanf("%d", nombredenombre);
switch (nombredenombre)
{
case 1:
printf("Ah! vous avez choisit deux nombre!, entrez le 1er nombre\n");
scanf("%lf", &nombre1);
printf("donnez maintenant le deuxieme nombre:\n");
scanf("%lf", &nombre2);
resultat = nombre1 + nombre2;
printf("Ah, le resultat est %f\n\n", resultat);
break;
case 2:
printf("Ah vous avez choisit trois nombres, entrez le 1er nombre\n\n");
scanf("%lf", &nombre1);
printf("Entrez le deuxieme nombre\n\n");
scanf("%lf", &nombre2);
printf("Ok maintenant, le troisieme nombre\n\n");
scanf("%lf", &nombre3);
resultat = nombre1 + nombre2 + nombre3;
printf("Ah! le resultat est donc %f\n\n", resultat);
break;
case 3:
printf("Ah! vous avez choisit quatre nombre, entrez le premier nombre\n\n");
scanf("%lf", &nombre1);
printf("Entrez le deuxieme nombre maintenant!\n\n");
scanf("%lf", &nombre2);
printf("Le troisieme nombre\n\n");
scanf("%lf", &nombre3);
printf("Le quatrieme nombre\n\n");
scanf("%lf", &nombre4);
resultat = nombre1 + nombre2 + nombre3 + nombre4;
printf("ah! le resultat est %f\n\n", resultat);
break;
case 4:
printf("Ah! vous avez choisit cinq nombre, entrez le 1er nombre\n\n");
scanf("%lf", &nombre1);
printf("Ok, entrez le deuxieme nombre maintenant\n\n");
scanf("%lf", &nombre2);
printf("Entrez le troisieme nombre\n\n");
scanf("%lf", &nombre3);
printf("le quatrieme nombre\n\n");
scanf("%lf", &nombre4);
printf("le cinquieme nombre\n\n", &nombre5);
resultat = nombre1 + nombre2 + nombre3 + nombre4 + nombre5;
printf("votre resultat est %f\n\n", resultat);
break;
case 5:
printf("Ah! vous avez choisit six nombre, entrez le premier nombre\n\n");
scanf("%lf", &nombre1);
printf("Ok, le deuxieme nombre maintenant\n\n");
scanf("%lf", &nombre2);
printf("le troisieme nombre\n\n");
scanf("%lf", &nombre3);
printf("le quatrieme nombre\n\n");
scanf("%lf", &nombre4);
printf("le cinquieme nombre\n\n");
scanf("%lf", &nombre5);
printf("Le sixieme nombre\n\n");
scanf("%lf", &nombre6);
resultat = nombre1 + nombre2 + nombre3 + nombre4 + nombre5 + nombre6;
printf("Votre resultat est %f\n\n", resultat);
break;
case 6:
printf("AH! vous avez choisit sept nombre, entrez le premier nombre\n\n");
scanf("%lf", &nombre1);
printf("Le deuxieme nombre\n\n");
scanf("%lf", &nombre2);
printf("le troisieme nombre\n\n");
scanf("%lf", &nombre3);
printf("le quatrieme nombre\n\n");
scanf("%lf", &nombre4);
printf("le cinquieme nombre\n\n");
scanf("%lf", &nombre5);
printf("le sixieme nombre\n\n");
scanf("%lf", &nombre6);
printf("le septieme nombre\n\n");
scanf("%lf", &nombre7);
resultat = nombre1 + nombre2 + nombre3 + nombre4 + nombre5 + nombre6 + nombre7;
printf("Votre resultat est de %f\n\n", resultat);
break;
case 7:
printf("Ah! vous avez choisit huit nombre, entrez le premier nombre\n\n");
scanf("%lf", &nombre1);
printf("le deuxieme nombre maintenant\n\n");
scanf("%lf", &nombre2);
printf("le troisieme nombre maintenant\n\n");
scanf("%lf", &nombre3);
printf("le quatrieme nombre\n\n");
scanf("%lf", &nombre4);
printf("le cinquieme nombre\n\n");
scanf("%lf", &nombre5);
printf("le sixieme nombre\n\n");
scanf("%lf", &nombre6);
printf("le septieme nombre\\nn");
scanf("%lf", &nombre7);
printf("le huitieme nombre\n\n");
scanf("%lf", &nombre8);
resultat = nombre1 + nombre2 + nombre3 + nombre4 + nombre5 + nombre6 + nombre7 + nombre8;
printf("le resultat est %f\n\n", resultat);
break;
case 8:
printf("Ah! vous avez choisit neuf nombre, entrez le premier nombre\n\n");
scanf("%lf", &nombre1);
printf("entrez le deuxieme nombre maintenant\n\n");
scanf("%lf", &nombre2);
printf("le troisieme nombre\n\n");
scanf("%lf", &nombre3);
printf("le quatrieme nombre\n\n");
scanf("%lf", &nombre4);
printf("le cinquieme nombre\n\n");
scanf("%lf", &nombre5);
printf("le sixieme nombre\n\n");
scanf("%lf", &nombre6);
printf("le septieme nombre\n\n");
scanf("%lf", &nombre7);
printf("le huitieme nombre\n\n");
scanf("%lf", &nombre8);
printf("le neuvieme nombre\n\n");
scanf("%lf", &nombre9);
resultat = nombre1 + nombre2 + nombre3 + nombre4 + nombre5 + nombre6 + nombre7 + nombre8 + nombre9;
printf("le resultat est %f\n\n", resultat);
break;
default:
printf("votre saisie n'est pas correct, votre calcul ne sera pas effectuer\n\n");
}
break;
case 2:
printf("vous avez choisit la sousraction, entrez le premier nombre\n\n");
scanf("%lf", nombre1);
printf("le deuxieme nombre\n\n");
scanf("%lf", nombre2);
resultat = nombre1 - nombre2;
printf("ah! le resultat est %f\n\n", resultat);
break;
case 3:
printf("Ah! vous avez choisit la multiplication, vous voulez multipliez combien de nombre voulez vous multipliez? \n\n1. 2nombre\n\n2. 3nombre\n\n3. 4nombre\n\n4. 5nombre\n\n5. 6nombre\n\n7. 8nombre\n\n8.9nombre");
scanf("%d", nombredenombre);
switch(nombredenombre)
{
case 1:
printf("Ah! vous avez choisi deux nombre! entrez le premier nombre\n\n");
scanf("%lf", nombre1);
printf("entre le deuxieme nombre\n\n");
scanf("%lf", nombre2);
resultat = nombre1 * nombre2;
printf("Votre resultat est : %f\n\n", resultat);
break;
case 2:
printf("Ah! vous avez choisit trois nombre, entrez le 1er nombre\n\n");
scanf("%lf", nombre1);
printf("le deuxieme nombre maintenant\n\n");
scanf("%lf", nombre2);
printf("le toisieme nombre maintenant\n\n");
scanf("%lf", nombre3);
resultat = nombre1 * nombre2 * nombre3;
printf("le resultat est : %f", resultat);
break;
case 3:
printf(" ah! vous avez choisit 4 nombre, entrez le 1er nombre\n\n");
scanf("%lf", nombre1);
printf("le deuxieme nombre maintenant\n\n");
scanf("%lf", nombre2);
printf("le troisieme nombre\n\n");
scanf("%lf", nombre3);
printf("le quatrieme nombre\n\n");
scanf("%lf", nombre4);
resultat = nombre1 * nombre2 * nombre3 * nombre4;
printf("le resultat est : %f", resultat);
break;
case 4:
printf("ah! vous avez choisit 5 nombres, entrez le 1er nombre\n\n");
scanf("%lf", nombre1);
printf("le deuxieme nombre\n\n");
scanf("%lf", nombre2);
printf("le troisieme nombre\n\n");
scanf("%lf", nombre3);
printf("le quatrieme nombre\n\n");
scanf("%lf", nombre4);
printf("le cinquieme nombre\n\n");
scanf("%lf", nombre5);
resultat = nombre1 * nombre2 * nombre3 * nombre4 * nombre5;
printf("le resultat est : %f\n\n", resultat);
break;
case 5:
printf("ah! vous avez choisit 6 nombres, entrez le 1er nombre\n\n");
scanf("%lf", nombre1);
printf("le deuxieme nombre\n\n");
scanf("%lf", nombre2);
printf("le troisieme nombre\n\n");
scanf("%lf", nombre3);
printf("le quatrieme nombre\n\n");
scanf("%lf", nombre4);
printf("le cinquieme nombre\n\n");
scanf("%lf", nombre5);
printf("le sixieme nombre\n\n");
scanf("%lf", nombre6);
resultat = nombre1 * nombre2 * nombre3 * nombre4 * nombre5 * nombre6;
printf("le resultat est : %f\n\n", resultat);
break;
case 6:
printf("ah! vous avez choisit 7 nombres, entrez le 1er nombre\n\n");
scanf("%lf", nombre1);
printf("le deuxieme nombre\n\n");
scanf("%lf", nombre2);
printf("le troisieme nombre\n\n");
scanf("%lf", nombre3);
printf("le quatrieme nombre\n\n");
scanf("%lf", nombre4);
printf("le cinquieme nombre\n\n");
scanf("%lf", nombre5);
printf("le sixieme nombre\n\n");
scanf("%lf", nombre6);
printf("le septieme nombre");
scanf("%lf", nombre7);
resultat = nombre1 * nombre2 * nombre3 * nombre4 * nombre5 * nombre6 * nombre7;
printf("le resultat est : %f\n\n", resultat);
break;
case 7:
printf("ah! vous avez choisit 8 nombres, entrez le 1er nombre\n\n");
scanf("%lf", nombre1);
printf("le deuxieme nombre\n\n");
scanf("%lf", nombre2);
printf("le troisieme nombre\n\n");
scanf("%lf", nombre3);
printf("le quatrieme nombre\n\n");
scanf("%lf", nombre4);
printf("le cinquieme nombre\n\n");
scanf("%lf", nombre5);
printf("le sixieme nombre\n\n");
scanf("%lf", nombre6);
printf("le septieme nombre\n\n");
scanf("%lf", nombre7);
printf("le huitieme nombre\n\n");
scanf("%lf", nombre8);
resultat = nombre1 * nombre2 * nombre3 * nombre4 * nombre5 * nombre6 * nombre7 * nombre8;
printf("le resultat est : %f", resultat);
break;
case 8:
printf("ah! vous avez choisit 9 nombres, entrez le 1er nombre\n\n");
scanf("%lf", nombre1);
printf("le deuxieme nombre\n\n");
scanf("%lf", nombre2);
printf("le troisieme nombre\n\n");
scanf("%lf", nombre3);
printf("le quatrieme nombre\n\n");
scanf("%lf", nombre4);
printf("le cinquieme nombre\n\n");
scanf("%lf", nombre5);
printf("le sixieme nombre\n\n");
scanf("%lf", nombre6);
printf("le septieme nombre\n\n");
scanf("%lf", nombre7);
printf("le huitieme nombre\n\n");
scanf("%lf", nombre8);
printf("le neuvieme nombre");
scanf("%lf", nombre9);
resultat = nombre1 * nombre2 * nombre3 * nombre4 * nombre5 * nombre6 * nombre7 * nombre8 * nombre9;
printf("le resultat est : %f", resultat);
break;
default:
printf("petit canaillou XD ton calcul il sera pas effectuer ;p");

}
break;
case 4:
printf("ah! vous avez choisit la division, entrez le 1er nombre\n\n");
scanf("%lf", nombre1);
printf("le deuxieme nombre\n\n");
scanf("%lf", nombre2);
resultat = nombre1 / nombre2;
printf(" le resultat est : %f\n\n", resultat);
break;
case 5:
printf("ah! vous avez choisit de faire une puissance, le premier nombre a entrez et le nombre, l'autre e=vaut la valeur de la puissance a effectuer, entrez le premier nombre");
scanf("%lf", nombre1);
printf("le deuxieme nombre");
scanf("%lf", nombre2);
resultat = pow(nombre1, nombre2);
printf("le reultat est : %f", resultat);
break;
default:
printf("petit canaillou XD ton calcul il sera pas effectuer ;p");
}

return 0;
}
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
13 mai 2011 à 21:42:40

Utilise les balises de code bon sang !!!
Et ton code est horrible : au lieu de tester si l'utilisateur veut additionner ou multiplier 1,2,3,4,5,6,7,8, ou 9 chiffres et de copier le code à chaque fois, utilise une boucle !
  • Partager sur Facebook
  • Partager sur Twitter
13 mai 2011 à 21:42:53

dyslexique ou pas, la présentation de ton code est laide.
Fais au moins l'effort de bien la présenter (cf Zcode) sans quoi tu n'auras pas d'aide.

A première vue ton code est bien longuet, et répète trop les mêmes instructions. C'est souvent source de bugs, par négligence.
  • Partager sur Facebook
  • Partager sur Twitter
13 mai 2011 à 22:04:53

premieres lignes :
scanf("%d", operation);

puis apres cette ligne :
case 2:
printf("vous avez choisit la sousraction, entrez le premier nombre\n\n");

il y a à peu près tout tes scanf ;)
  • Partager sur Facebook
  • Partager sur Twitter
perror(const char * str); will save your life !
13 mai 2011 à 22:34:45

Citation : darkingold

Utilise les balises de code bon sang !!!



+1

Pense aussi à utiliser des fonctions, car ton code est ré-pé-ti-tif.
(Et illisible).

J'allai aussi oublier : indente ton code, et utilise les balises secret pour un code siiii long.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
	int resultat = 0;
	int operation = 0;
	int nombredenombre = 0;
	double nombre1 = 0;
	double nombre2 = 0;
	double nombre3 = 0;
	double nombre4 = 0;
	double nombre5 = 0;
	double nombre6 = 0;
	double nombre7 = 0;
	double nombre8 = 0;
	double nombre9 = 0;
	printf("Bienvenue, quel operation voulez-vous faire?\n\n");
	printf("1. pour l'additon\n\n2.pour la soustraction\n\n3.pour la multiplication\n\n4.pour la division\n\n5.pour une puissance, un carre ou un cube\n");// on demande quel operation on veut effectuer
	scanf("%d", operation);
	switch (operation)
	{
	case 1:
		printf("Ah, vous avez choisit l'addition!\n\nChoisissez le nombre de nombre que vous voulez additionnez:\n1. 2nombre\n2. 3nombre\n3. 4nombre\n4. 5nombre\n5. 6nombre\n6. 7nombre\n7. 8nombre\n8. 9nombre\n");//on demande le nombre de nombre
		scanf("%d", nombredenombre);
		switch (nombredenombre)
		{
		case 1:
			printf("Ah! vous avez choisit deux nombre!, entrez le 1er nombre\n");
			scanf("%lf", &nombre1);
			printf("donnez maintenant le deuxieme nombre:\n");
			scanf("%lf", &nombre2);
			resultat = nombre1 + nombre2;
			printf("Ah, le resultat est %f\n\n", resultat);
			break;
		case 2:
			printf("Ah vous avez choisit trois nombres, entrez le 1er nombre\n\n");
			scanf("%lf", &nombre1);
			printf("Entrez le deuxieme nombre\n\n");
			scanf("%lf", &nombre2);
			printf("Ok maintenant, le troisieme nombre\n\n");
			scanf("%lf", &nombre3);
			resultat = nombre1 + nombre2 + nombre3;
			printf("Ah! le resultat est donc %f\n\n", resultat);
			break;
		case 3:
			printf("Ah! vous avez choisit quatre nombre, entrez le premier nombre\n\n");
			scanf("%lf", &nombre1);
			printf("Entrez le deuxieme nombre maintenant!\n\n");
			scanf("%lf", &nombre2);
			printf("Le troisieme nombre\n\n");
			scanf("%lf", &nombre3);
			printf("Le quatrieme nombre\n\n");
			scanf("%lf", &nombre4);
			resultat = nombre1 + nombre2 + nombre3 + nombre4;
			printf("ah! le resultat est %f\n\n", resultat);
			break;
		case 4:
			printf("Ah! vous avez choisit cinq nombre, entrez le 1er nombre\n\n");
			scanf("%lf", &nombre1);
			printf("Ok, entrez le deuxieme nombre maintenant\n\n");
			scanf("%lf", &nombre2);
			printf("Entrez le troisieme nombre\n\n");
			scanf("%lf", &nombre3);
			printf("le quatrieme nombre\n\n");
			scanf("%lf", &nombre4);
			printf("le cinquieme nombre\n\n", &nombre5);
			resultat = nombre1 + nombre2 + nombre3 + nombre4 + nombre5;
			printf("votre resultat est %f\n\n", resultat);
			break;
		case 5:
			printf("Ah! vous avez choisit six nombre, entrez le premier nombre\n\n");
			scanf("%lf", &nombre1);
			printf("Ok, le deuxieme nombre maintenant\n\n");
			scanf("%lf", &nombre2);
			printf("le troisieme nombre\n\n");
			scanf("%lf", &nombre3);
			printf("le quatrieme nombre\n\n");
			scanf("%lf", &nombre4);
			printf("le cinquieme nombre\n\n");
			scanf("%lf", &nombre5);
			printf("Le sixieme nombre\n\n");
			scanf("%lf", &nombre6);
			resultat = nombre1 + nombre2 + nombre3 + nombre4 + nombre5 + nombre6;
			printf("Votre resultat est %f\n\n", resultat);
			break;
		case 6:
			printf("AH! vous avez choisit sept nombre, entrez le premier nombre\n\n");
			scanf("%lf", &nombre1);
			printf("Le deuxieme nombre\n\n");
			scanf("%lf", &nombre2);
			printf("le troisieme nombre\n\n");
			scanf("%lf", &nombre3);
			printf("le quatrieme nombre\n\n");
			scanf("%lf", &nombre4);
			printf("le cinquieme nombre\n\n");
			scanf("%lf", &nombre5);
			printf("le sixieme nombre\n\n");
			scanf("%lf", &nombre6);
			printf("le septieme nombre\n\n");
			scanf("%lf", &nombre7);
			resultat = nombre1 + nombre2 + nombre3 + nombre4 + nombre5 + nombre6 + nombre7;
			printf("Votre resultat est de %f\n\n", resultat);
			break;
		case 7:
/* [...] Je vais pas tous faire quand même !!! */
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
13 mai 2011 à 22:48:16

Cette calculette est encore moins efficace que la Pascaline...
Pourquoi ne pas faire une boucle tant que l'utilisateur ne rentre pas un caractère "égal" par exemple ?
  • Partager sur Facebook
  • Partager sur Twitter
13 mai 2011 à 22:59:03

En fait, dans ton programme, deux variables pour les calculs suffisent (Et ça simplifie énormément):
/* [...] */
printf("\nNombre de calcul : ");
scanf("%ld", &nbNombre);
for(i = 0; i < nbNombre; i++)
{
   printf("\nNombre %d : ", i);
   scanf("%lf", &nombre);
   resultat += nombre;
}
printf("Resultat : %f", resultat);
/* [...] */
  • Partager sur Facebook
  • Partager sur Twitter
13 mai 2011 à 23:16:46

Le message qui suit est une réponse automatique activée par un modérateur.
Les réponses automatiques permettent d'éviter aux modérateurs d'avoir à répéter de nombreuses fois la même chose, et donc de leur faire gagner beaucoup de temps.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter le modérateur en question par MP.


Merci d'utiliser les balises de code


Bonjour,

Les forums du Site du Zér0 disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source.
Vous avez posté un code source sans utiliser cette fonctionnalité. Pourriez-vous éditer votre message afin d'ajouter ces balises ? Pour cela, sélectionnez votre code à colorer et utilisez le bouton Image utilisateur afin de choisir la coloration adaptée. Veillez à bien choisir le langage de programmation afin que la coloration soit pertinente.

De plus, veillez à ce que votre code soit correctement indenté.

Afin de ne pas surcharger le sujet, ne postez pas votre code coloré dans un nouveau message mais éditez le premier (grâce au bouton Image utilisateur).

Cela aura pour effet de "colorer" votre code et donc d'en faciliter grandement la lecture. Vous aurez ainsi beaucoup plus de chances d'avoir des réponses.

Voici un exemple de code non coloré (mauvais exemple) :

int main(int argc, char *argv[])
{
long choixOperation;

printf("Choisissez l'operation a effectuer");
/* etc. */
}

Voici maintenant le même code coloré, utilisant la balise "code" (bon exemple) :

int main(int argc, char *argv[])
{
    long choixOperation;

    printf("Choisissez l'operation a effectuer");
    /* etc. */
}


C'est plus clair n'est-ce pas ? ;)

Plus d'informations à ce sujet.

Merci de votre compréhension. :)
Les modérateurs.
  • Partager sur Facebook
  • Partager sur Twitter
Pwaite.net > Transfert de crédit téléphonique et monétisation de site web                                                                                        « I am awesome »
13 mai 2011 à 23:16:58

Le message qui suit est une réponse automatique activée par un modérateur.
Les réponses automatiques permettent d'éviter aux modérateurs d'avoir à répéter de nombreuses fois la même chose, et donc de leur faire gagner beaucoup de temps.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter le modérateur en question par MP.


Le titre du sujet est incorrect


Bonjour,



Ce sujet a un titre qui ne décrit pas correctement le sujet, ou le titre est en majuscules. Vous pouvez re-poster votre sujet en rectifiant ce point.

Voici quelques correspondances pour vous aider à choisir au mieux votre titre :



Merci de votre compréhension :)
Les modérateurs.
  • Partager sur Facebook
  • Partager sur Twitter
Pwaite.net > Transfert de crédit téléphonique et monétisation de site web                                                                                        « I am awesome »