Comment diviser les 2 int en c?
veux diviser 2 nombres et obtenir le résultat comme ceci:
5 /2 = 2.50
Mais il ne renvoie 2.
Je ne sais pas maintenant ce que je fais mal.
Voici mon code:
int a;
int b;
int c;
printf("First num\n");
scanf("%d", &a);
printf("Second num\n");
scanf("%d", &b);
c = a / b;
printf("%d", c);
- 2.50 n'est pas un entier. Il ne peut pas être stockée dans un
int
. int
signifie "entier", vous savez...- Bien que la virgule flottante est une solution, mais peut-être que vous voulez en lire plus sur
fixed point
.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'un
double
variable pour stocker le résultat.int
stocke uniquement des nombres entiers. En outre, vous avez à transtypage les autres variables aussi avant d'effectuer la division.Faire quelque chose comme ceci
REMARQUE:
Vous n'avez pas besoin de la
&
dansprintf()
consolidés.Pour éviter le transtypage en float, vous pouvez directement utiliser scanf avec %f drapeau.
Le '/' - signe de division. Chaque fois que dans le langage C, vous diviser un entier par un entier compris et stocker les données dans un entier, la réponse en sortie est un entier. Par exemple
La sortie reçu est: 1
La raison est que le type de variable que vous avez utilisé, c'est à dire entier (
int
)Chaque fois qu'un entier est utilisé pour le stockage de la sortie, le résultat sera stocké sous forme d'entier et non pas une valeur décimale.
Pour le stockage de la virgule résultats, langage C fournir
float
,double
,long float
etlong double
.Chaque fois que vous effectuez une opération et les désirs d'une sortie dans les décimales, vous pouvez utiliser le ci-dessus mentionné les types de données pour votre résultante de stockage variable. Par exemple
La sortie reçues: 1.5
Donc, je pense que cela va vous aider à comprendre le concept.
Rappelez-vous: Lorsque vous utilisez
float
puis le spécificateur d'accès est%f
. Vous avez besoin de convertir votre réponse dansfloat
, comme je l'ai fait, et alors la réponse sera pris en compte.stdout
, ou d'essayer de compiler et d'exécuter le code vous-même).Vous devez utiliser
float
oudouble
variables, pasint
(entier) ceux. Notez également qu'une division entre deux entiers conduira à un résultat sous forme d'entier, en attendant une division entre unfloat
/double
et un entier qui va conduire à un flotteur de résultat. C'est parce que C implicitement promouvoir cet entierfloat
.Par exemple:
Note le
.0f
, cela signifie en fait que nous diviser avec un flotteur.En C, seulement un type int nombre est affiché. 5/2 donne un type à virgule flottante nombre. Ainsi, le compilateur compile qu'avec la valeur de l'entier.