
|
|
Auteur
|
Message
|
1
|
|
|
|
Donc voilà je veux faire un programme tout simple qui divise deux chiffres à virgule puis affiche le résultat de la division avec deux chiffres après la virgule...seulement entre temps je fais 3 tests quand le numérateur est égal à 0 puis qaund le dénominateur est égal à 0 et 1...
Mon problème est que quand je met a=0 ca ne rentre pas dans la boucle et ca rentre toujours dans la boucle "il est inutile de diviser..."(prévue pour b=1) même quand b différent de 1:(voir l'image)
Voici mon programme...
#include<stdio.h>
int main( )
{
float a,b,resultat_div;
a=0;
b=0;
resultat_div=0;
printf("Ce programme va diviser A par B \n");
printf("Entrer A \n");
scanf("%f",&a);
printf("Entrer B \n");
scanf("%f",&b);
if(a=0) {printf("0 divise par n'importe quel chiffre donne toujours 0 \n");
}
if(b=0) {printf("La division d'un chiffre par 0 est impossible \n");
}
if(b=1) {printf("Il est inutile de divise %f par %.0f ... \n",a,b);
}
else { resultat_div=a/b;
printf("Le resultat de la division de %f par %f est %.2f \n",a,b,resultat_div);
}
getch();
return 0;
}
|
|
|
|
|
|
Effectivement....Comment tu ferais pour que si l'une des trois condition est remplie ca ne m'affiche pas "le resultat de la division est..."...Merci
|
|
|
|
|
si
|
|
|
|
|
|
|
|
|
et ça ?? j'ai pas fais de C, mais bon le principe est le même...
#include<stdio.h>
int main()
{
float a,b,resultat_div;
boolean erreur;
erreur=0;
a=0;
b=0;
resultat_div=0;
printf("Ce programme va diviser A par B \n");
printf("Entrer A \n");
scanf("%f",&a);
printf("Entrer B \n");
scanf("%f",&b);
if(a==0) {
erreur=1;
printf("0 divise par n'importe quel nombre donne toujours 0 \n");
break;
}
if(b==1) {
erreur=1;
printf("Il est inutile de divise %f par %.0f ... \n",a,b);
break;
}
if(b==0) {
erreur=1;
printf("La division d'un nombre par 0 est impossible \n");
}
if(erreur!=1) {
resultat_div = a/b;
printf("Le resultat de la division de %f par %f est %.2f \n",a,b,resultat_div);
}
getch();
return 0;
}
|
|
|
|
|
Question (bah ouiah j'ai le droit aussi )
Est-ce que ma version est plus "rapide" ?
Peut-on déclarer les variables ainsi :
a=b=resultat_div=0;
et
boolean erreur=0;
Je deviens curieux concernant le C/C++
|
|
|
|
|
ok
|
|
|
|
|
N.Tary a écrit :
Question (bah ouiah j'ai le droit aussi  )
Est-ce que ma version est plus "rapide" ?
Peut-on déclarer les variables ainsi :
a=b=resultat_div=0;
et
boolean erreur=0;
Je deviens curieux concernant le C/C++
Ce qui est en gras, tu peux. Cela va d'abord affecter 0 à resultat_div. Puis, le contenu de resultat_div va être affecté à b et finalement, le contenu de b va être affecté à a.
Pour l'autre, je ne sais pas
Et pour que la version soit plus rapide, il serait utile de remplacer tous les if, if, if par des alternatives imbriquées. Cela donnerait quelque chose du genre :
if
{
}
else
{
if
{
}
else
{
}
}
...
|
|
|
|
|
zPlaY a écrit :
Je pense que c'est ça
#include<stdio.h>
int main()
{
float a,b,resultat_div;
a=0;
b=0;
resultat_div=0;
printf("Ce programme va diviser A par B \n");
printf("Entrer A \n");
scanf("%f",&a);
printf("Entrer B \n");
scanf("%f",&b);
if(a==0) {
printf("0 divise par n'importe quel nombre donne toujours 0 \n");
break;
}
if(b==1) {
printf("Il est inutile de divise %f par %.0f ... \n",a,b);
break;
}
if(b==0) {
printf("La division d'un nombre par 0 est impossible \n");
}
if(a!=0 && b!=1 && b!=0) {
resultat_div = a/b;
printf("Le resultat de la division de %f par %f est %.2f \n",a,b,resultat_div);
}
getch();
return 0;
}
je vois pas l'utilisté des break
|
|
est bon : Mangez en !
|
|
|
à quoi servent :
a=0;
b=0;
resultat_div=0;
??
le float a,b,resultat_div;
suffit, nan ?
|
|
2008, ...
|
|
|
Martius a écrit :
à quoi servent :
a=0;
b=0;
resultat_div=0;
??
le float a,b,resultat_div;
suffit, nan ?
float a,b,resultat_div;
Ca déclare les variables
a=0;
b=0;
resultat_div=0;
Ca les initialise
En c les variables ne sont pas initialisées par défaut
Si elles ne sont pas initialisées, elles ne valent pas 0, elles valent rien.
-------
[Chaque minute qui passe est une occasion de changer le cours de sa vie]
[Les préjugés sont les ennemis du bon sens]
|
|
1
|
|

|

|