首页 > 解决方案 > / 操作没有给我结果

问题描述

大家好,基本上我有这个 C 计算器,但每当我尝试 4/8 时,它都会给我 0.000000。有什么帮助吗?

#include <stdio.h>
int main()
{ 
char action;
int number,number1;
float resultat;
do 
{
    printf ("Choisit votre opérateur logique\n");
    scanf("%c", &action);
} while (!((action == '/') ||(action == '-') ||(action == '+') ||(action == '*')  ));
switch (action)
{
    case '/':
    scanf("%d %d", &b,&c );
    resultat = number / number1;
    printf("Votre opéation a donné comme un résultat :  %f ", resultat);
    break;

(代码不完整,因为重置工作正常,不需要任何帮助)谢谢

标签: c

解决方案


在“C”中,整数之间的除法(或进行任何其他数学运算)将执行整数运算。对于除法的情况,它会截断结果。您可以通过将参数之一强制转换为浮点数(或双精度)来强制计算为浮点数。

没有强制转换,代码首先计算 4/8,得到 (integer) 0,然后将其转换为浮点 0。

    case '/':
    scanf("%d %d", &b,&c );
    d = ((float) b) / c;
    printf("Votre opéation a donné comme un résultat :  %f ", d);
    break;

推荐阅读