C语言分数参与运算的表达式

我们要计算一个物理自由落体运动的3s的位移,设重力加速度为10m/s^2

​公式为h = 1/2 g t^2

如果用小数0.5表示1/2

代码如下:

#include<stdio.h>
#include<math.h>
#define g 10
#define t 3
int main(){
    float h;
    h = 0.5 * g * pow(t, 2);
    printf("h = %0.2f", height);
    return 0;
}

输出结果:

h = 45.00

将0.5改为1/2

代码如下:

#include<stdio.h>
#include<math.h>
#define g 10
#define t 3
int main(){
    float h;
    h = 1/2 * g * pow(t, 2);
    printf("h = %0.2f", height);
    return 0;
}

输出结果:

h = 0.00

为什么没有输出正确结果?
问题出在1/2,运算表达式中出现两个整型数据的相除,相除结果为整型,在此1/2的结果为0,所以给h赋的值最终为0

如何使分数参与运算的表达式正确?

分数带上.0表示浮点数

#include<stdio.h>
#include<math.h>
#define g 10
#define t 3
int main(){
    float height;
    height = 1.0/2.0 * g * pow(t,2);
    printf("height = %0.2f", height);
}

输出结果:

h = 45.00
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值