记C语言中分数的除法问题

#记C语言中分数的除法问题

题目如下

将华氏温度转化为摄氏温度,利用公式C=5/9*(F-32)。其中C为摄氏度,F为华氏度。

问题很简单,可以很快的写出程序如下:

#include<stdio.h>
//华氏温度转化为摄氏 
int main()
{
	float f,c;
	f=64;
	c=(5/9)*(f-32);
	printf("F=%f\nC=%f",f,c);
	return 0;
} 

但运行后输出发现 C=0。
查找问题后发现,除法在C中不能简单的和公式一样表达。如:5/9
得到结果为0,因为C中 “/” 号两边为整除即代表整除,得到的结果为0
所以要得到真实结果,应将两边一数字改为小数表示即 5.0/9,结果为17.777779

将行7代码变更即可

c=(5.0/9)*(f-32);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言除法运算符 `/` 可以用于整数和浮点数的除法运算,但是它并不能进行分数除法运算。如果你需要进行分数计算,你需要使用分数的运算规则,例如将分数相除转化为分数的乘法。以下是一个例子: ```c #include <stdio.h> struct fraction { int numerator; int denominator; }; struct fraction multiply(struct fraction f1, struct fraction f2); struct fraction divide(struct fraction f1, struct fraction f2); int main() { struct fraction f1 = {2, 3}; struct fraction f2 = {3, 4}; struct fraction product, quotient; product = multiply(f1, f2); quotient = divide(f1, f2); printf("%d/%d * %d/%d = %d/%d\n", f1.numerator, f1.denominator, f2.numerator, f2.denominator, product.numerator, product.denominator); printf("%d/%d / %d/%d = %d/%d\n", f1.numerator, f1.denominator, f2.numerator, f2.denominator, quotient.numerator, quotient.denominator); return 0; } struct fraction multiply(struct fraction f1, struct fraction f2) { struct fraction result; result.numerator = f1.numerator * f2.numerator; result.denominator = f1.denominator * f2.denominator; return result; } struct fraction divide(struct fraction f1, struct fraction f2) { struct fraction result; result.numerator = f1.numerator * f2.denominator; result.denominator = f1.denominator * f2.numerator; return result; } ``` 在这个程序,我们定义了一个分数的结构体 `fraction`,它包含分子和分母两个成员变量。我们使用两个函数 `multiply()` 和 `divide()` 分别进行分数的乘法和除法运算。在 `main()` 函数,我们定义两个分数 `f1` 和 `f2`,然后调用 `multiply()` 和 `divide()` 函数进行分数的乘法和除法运算,并将结果输出到屏幕上。 注意:在进行分数计算时,需要注意分母是否为 0 的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值