c - / 操作没有给我结果
问题描述
大家好,基本上我有这个 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”中,整数之间的除法(或进行任何其他数学运算)将执行整数运算。对于除法的情况,它会截断结果。您可以通过将参数之一强制转换为浮点数(或双精度)来强制计算为浮点数。
没有强制转换,代码首先计算 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;
推荐阅读
- r - 将对数正态分布采样为精确均值和 sd
- powershell - Pester如何模拟“测试存在(未找到)-创建-再次测试以确认创建”模式中的“测试”功能?
- python-3.x - 使用蒙版更改 BGR 图像颜色?
- html - 如何编写正则表达式以删除具有不同措辞的简码
- python - 格式化乘法表
- python-3.x - 如果参数未通过命令传递,则向聊天室发送消息
- openshift - 如何在本地查看openshift在线节点应用日志?
- python - 根据数据框中序数的存在进行迭代和更新
- python - Scikit 的管道 - 如何访问特定阶段的结果
- excel - 在excel中扩大范围