Encore un probleme avec le c
xkaiser88
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
xkaiser88 Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
xkaiser88 Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai écrit 2 programmes en C , l'un calculant les racines d'un polynome du 2ème degré et l'autre comparant
2 entiers naturels mais les 2 ne marchent pas , corrigez moi les . Merci
voila le programme pour le polynome:
#include<stdio.h>
void main (){
int a;
int b;
int c;
float x1;
float x2;
float x;
float delta;
printf("saisir les coefficients du polynome");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
delta= b*b - 4*a*c;
printf("delta est:");
printf("%f", delta) ;
if(delta=0)
x=-1*b/2*a;
printf("la solution est egale");
printf("%f",x);
if ( delta>0)
x1=(-1*b+sqrt(2))/2*a;
x2=(-1*b-sqrt(2))/2*a;
printf("la solution est égale\n");
printf("%f",x1,x2);
else
if (delta<0)
printf(" le polynome n'admet pas de racines");
system("pause");
}
Pour celui qui compare:
#include<stdio.h>
main () {
int a;
int b;
int max;
float c;
scanf("%d",&a);
scanf("%d",&b);
c=a-b;
if(c<0)
max=b;
printf("le max est:\n");
printf("%d",max);
else
max=a;
printf("%d",max);
system("pause");
}
J'ai écrit 2 programmes en C , l'un calculant les racines d'un polynome du 2ème degré et l'autre comparant
2 entiers naturels mais les 2 ne marchent pas , corrigez moi les . Merci
voila le programme pour le polynome:
#include<stdio.h>
void main (){
int a;
int b;
int c;
float x1;
float x2;
float x;
float delta;
printf("saisir les coefficients du polynome");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
delta= b*b - 4*a*c;
printf("delta est:");
printf("%f", delta) ;
if(delta=0)
x=-1*b/2*a;
printf("la solution est egale");
printf("%f",x);
if ( delta>0)
x1=(-1*b+sqrt(2))/2*a;
x2=(-1*b-sqrt(2))/2*a;
printf("la solution est égale\n");
printf("%f",x1,x2);
else
if (delta<0)
printf(" le polynome n'admet pas de racines");
system("pause");
}
Pour celui qui compare:
#include<stdio.h>
main () {
int a;
int b;
int max;
float c;
scanf("%d",&a);
scanf("%d",&b);
c=a-b;
if(c<0)
max=b;
printf("le max est:\n");
printf("%d",max);
else
max=a;
printf("%d",max);
system("pause");
}
4 réponses
Bonjour
En première lecture, deux erreurs :
1 - les instructions soumises à un if ou au else correspondant doivent être regroupées par des accolades { }
2 - quand on fait un calcul avec des entiers, on a un résultat entier. Si on le traduit en flottant après, on ne retrouve pas les décimales qui avaient été perdues lors du calcul.
En première lecture, deux erreurs :
1 - les instructions soumises à un if ou au else correspondant doivent être regroupées par des accolades { }
2 - quand on fait un calcul avec des entiers, on a un résultat entier. Si on le traduit en flottant après, on ne retrouve pas les décimales qui avaient été perdues lors du calcul.
Pour le premier j'ai mis les accolades dans les 2 programmes et la compilation detecte une erreur dans le else dans les deux programmes , pourquoi ?
Voici les 2 programmes après rectification:
Polynome :
#include<stdio.h>
main (){
int a;
int b;
int c;
float x1;
float x2;
float x;
float delta;
printf("saisir les coefficients du polynome");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
delta= b*b - 4*a*c;
printf("delta est:");
printf("%f", delta) ;
if(delta=0){
x=-b/2*a;
printf("la solution est egale");
printf("%f",x);
}
if ( delta>0){
x1=(-1*b+sqrt(2))/2*a;
x2=(-1*b-sqrt(2))/2*a;
}
printf("la solution est égale\n");
printf("%f",x1,x2);
else
printf(" le polynome n'admet pas de racines");
system("pause");
}
Comparaison :
#include<stdio.h>
main () {
int a;
int b;
int max;
int c;
scanf("%d",&a);
scanf("%d",&b);
c=a-b;
if(c<0){
max=b;
printf("le max est:\n");
}
printf("%d",max);
else {
max=a;
}
printf("%d",max);
system("pause");
}
Ne soyez pas trop rapide , je suis débutant dans le C
Voici les 2 programmes après rectification:
Polynome :
#include<stdio.h>
main (){
int a;
int b;
int c;
float x1;
float x2;
float x;
float delta;
printf("saisir les coefficients du polynome");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
delta= b*b - 4*a*c;
printf("delta est:");
printf("%f", delta) ;
if(delta=0){
x=-b/2*a;
printf("la solution est egale");
printf("%f",x);
}
if ( delta>0){
x1=(-1*b+sqrt(2))/2*a;
x2=(-1*b-sqrt(2))/2*a;
}
printf("la solution est égale\n");
printf("%f",x1,x2);
else
printf(" le polynome n'admet pas de racines");
system("pause");
}
Comparaison :
#include<stdio.h>
main () {
int a;
int b;
int max;
int c;
scanf("%d",&a);
scanf("%d",&b);
c=a-b;
if(c<0){
max=b;
printf("le max est:\n");
}
printf("%d",max);
else {
max=a;
}
printf("%d",max);
system("pause");
}
Ne soyez pas trop rapide , je suis débutant dans le C
Dans les deux programmes, tu ne respectes pas la structure du if - else : après le if, tu as un bloc d'instructions entouré de { }, ce qui est très bien, mais le else, s'il y en a un, doit venir aussitôt après. Si tu mets des instruction en dehors du bloc après l'accolade } qui suit le if, le if est complètement terminé et ne peut pas avoir de else.
Je pense que tu as simplement mis l'accolade } trop tôt
Ne soyez pas trop rapide , je suis débutant dans le C
Si je voulais être rapide, je donnerais la correction et on n'en parlerait plus !
Je pense que tu as simplement mis l'accolade } trop tôt
Ne soyez pas trop rapide , je suis débutant dans le C
Si je voulais être rapide, je donnerais la correction et on n'en parlerait plus !
Bonsoir , j'ai corrigé le 2ème programme et il fonctionne , pour le 1er le programme, il ne donne pas les racines du polynome pourtant j'ai corrigé la structure du if , j'ai meme supprimé le else et je l'ai remplacé par un if : voila le nouveau programme :
#include<stdio.h>
main (){
int a;
int b;
int c;
float x1;
float x2;
float x;
float delta;
printf("saisir les coefficients du polynome");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
delta= b*b - 4*a*c;
printf("delta est:");
printf("%f", delta) ;
if(delta=0){
x=-b/2*a;
printf("la solution est egale");
printf("%f",x);
}
if ( delta>0){
x1=(-1*b+sqrt(2))/2*a;
x2=(-1*b-sqrt(2))/2*a;
}
printf("la solution est égale\n");
printf("%f",x1,x2);
if (delta <0) {
printf(" le polynome n'admet pas de racines");}
system("pause");
}
#include<stdio.h>
main (){
int a;
int b;
int c;
float x1;
float x2;
float x;
float delta;
printf("saisir les coefficients du polynome");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
delta= b*b - 4*a*c;
printf("delta est:");
printf("%f", delta) ;
if(delta=0){
x=-b/2*a;
printf("la solution est egale");
printf("%f",x);
}
if ( delta>0){
x1=(-1*b+sqrt(2))/2*a;
x2=(-1*b-sqrt(2))/2*a;
}
printf("la solution est égale\n");
printf("%f",x1,x2);
if (delta <0) {
printf(" le polynome n'admet pas de racines");}
system("pause");
}