Programme qui ne s'exécute pas..
Résolu
Bonjour,
J'ai créé un petit programme calculant les racines du discriminant et sa valeur... Seulement, il s'arrête automatiquement après avoir entré a, b et c...
Voici le code :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
float a = 0, b = 0, c = 0, racinedouble = 0, delta = 0, racinedouble2 = 0, rac1 = 0, rac2 = 0;
printf(" CALCUL DU DISCRIMINANT ET SES RACINES.\n\n");
printf("\nRentrez a :\n\n");
scanf("%d",&a);
printf("\nRentrez b :\n\n");
scanf("%d",&b);
printf("\nRentrez c :\n\n");
scanf("%d",&c);
delta = (b*b)-(4*(a*c));
if ((a=0)&&(b=0))
{
printf("\n Equation degeneree : 0 ou solutions infinies.\n\n\n");
}
else if ((a=0)&&(b!=0))
{
racinedouble = (b/c);
printf("\n Il y a une racine : %d\n\n\n", racinedouble);
}
else if ((a!=0)&&(b!=0))
{
if (delta < 0)
{
printf("\n Il n'y a pas de racine reelle.\n\n");
}
else if (delta = 0)
{
racinedouble2 = (-b)/(2*a);
printf("\n Il y a une racine double : %d.\n\n", racinedouble2);
}
else if (delta > 0)
{
rac1 = (((-b)-(delta/delta))/(2*a));
rac2 = (((-b)+(delta/delta))/(2*a));
printf("\n Il y a deux solutions : %d et %d\n\n", rac1, rac2);
}
}
system("PAUSE");
}
Merci d'avance !
J'ai créé un petit programme calculant les racines du discriminant et sa valeur... Seulement, il s'arrête automatiquement après avoir entré a, b et c...
Voici le code :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
float a = 0, b = 0, c = 0, racinedouble = 0, delta = 0, racinedouble2 = 0, rac1 = 0, rac2 = 0;
printf(" CALCUL DU DISCRIMINANT ET SES RACINES.\n\n");
printf("\nRentrez a :\n\n");
scanf("%d",&a);
printf("\nRentrez b :\n\n");
scanf("%d",&b);
printf("\nRentrez c :\n\n");
scanf("%d",&c);
delta = (b*b)-(4*(a*c));
if ((a=0)&&(b=0))
{
printf("\n Equation degeneree : 0 ou solutions infinies.\n\n\n");
}
else if ((a=0)&&(b!=0))
{
racinedouble = (b/c);
printf("\n Il y a une racine : %d\n\n\n", racinedouble);
}
else if ((a!=0)&&(b!=0))
{
if (delta < 0)
{
printf("\n Il n'y a pas de racine reelle.\n\n");
}
else if (delta = 0)
{
racinedouble2 = (-b)/(2*a);
printf("\n Il y a une racine double : %d.\n\n", racinedouble2);
}
else if (delta > 0)
{
rac1 = (((-b)-(delta/delta))/(2*a));
rac2 = (((-b)+(delta/delta))/(2*a));
printf("\n Il y a deux solutions : %d et %d\n\n", rac1, rac2);
}
}
system("PAUSE");
}
Merci d'avance !
A voir également:
- Programme qui ne s'exécute pas..
- Comment fermer un programme qui ne répond pas - Guide
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
7 réponses
dans tous tes if tu affectes des valeur aux variables au lieu de les comparer...
remplace les
remplace les
if ((a=0)&&(b=0))par
if ((a==0)&&(b==0))
Voici la correction :
Et on exécute :
Bonne chance
#include <stdio.h> #include <stdlib.h> #include <math.h> // compilation gcc -W -Wall -o plop.exe plop.c -lm int main(){ // un double est plus précis qu'un float double a = 0, b = 0, c = 0, delta = 0, racinedouble2 = 0, rac1 = 0, rac2 = 0; printf(" CALCUL DU DISCRIMINANT ET SES RACINES.\n"); printf("Rentrez a :\n"); scanf("%lf",&a); // a,b,c sont des double donc il faut lire un double (%lf) printf("Rentrez b :\n"); scanf("%lf",&b); printf("Rentrez c :\n"); scanf("%lf",&c); delta = (b*b)-(4*(a*c)); // Attention il faut utiliser == !!! // Sinon tu fais une affectation et tu testes si la valeur affectée est // différente de 0 ou de NULL // Si tu compiles avec les warnings (options -W -Wall) il te prévient ! if(a == 0){ if(b == 0){ printf("Fonction constante :\n"); if(c==0) printf("infinité de raçines\n"); else printf("0 racine\n"); }else{ printf("Polynôme du premier degré\n"); // la racine peut être un réel ! %d ne permet que d'écrire un entier ! // bx + c == 0 <=> x = -c/b, b != 0 printf("Il y a une racine : %lf\n",c ? -c/b : 0); } }else{ if (delta < 0){ printf("Il n'y a pas de racine reelle.\n"); }else if (delta == 0){ racinedouble2 = (-b)/(2*a); printf("Il y a une racine double : %lf.\n", racinedouble2); }else{ rac1 = (-b-sqrt(delta))/(2*a); rac2 = (-b+sqrt(delta))/(2*a); printf("Il y a deux solutions : %lf et %lf\n", rac1, rac2); } } // system("PAUSE"); // pas standard, utilise getchar getchar(); return 0; }On compile (par exemple sous linux ça donne ça) :
gcc -W -Wall -o plop.exe pouet.c -lm
Et on exécute :
(mando@aldur) (~) $ ./plop.exe CALCUL DU DISCRIMINANT ET SES RACINES. Rentrez a : 1 Rentrez b : 1 Rentrez c : -2 Il y a deux solutions : -2.000000 et 1.000000
Bonne chance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question