|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
) e, C \/ k& _* H6 u( T
例1:有人用温度计测量出用华氏温度98°F,现在要求用C语言实现把它转换为以摄氏法表示的温度。
5 ^& o5 o% p( S/ t1 p0 { L, a9 Z* i3 [9 \2 u6 d4 J- T; Z
解题思路:这个问题的算法很简单,关键在于找到二者之间的转化公式,摄氏度等于九分之五乘以华氏度减去32的积,也就是:% p3 G, { R! A) Q
centigrade=(5.0/9)*(f_Degree-32);
1 t/ ]0 T6 e" `; T1 h) n% J
3 p2 I: L3 I, k源代码演示:! k' E( b; l2 {- G% O
#include<stdio.h>//头文件" N' }0 \! |3 ^9 K/ ]( O7 k5 D
int main() //主函数
$ Y( F% Q+ N1 H{
' Z6 Z j& d+ `! r3 W! K flOAT f_Degree,centigrade; //定义浮点型变量
9 W6 s7 H! q: h6 P f_Degree=98.0;//初始化华氏度变量
/ [/ z; a' U) C# O- G7 L; J- y centigrade=(5.0/9)*(f_Degree-32);//注意此处应该是5.0
% e7 A! k) H- _1 B* y printf("华氏度98的摄氏度为:%f\n",centigrade);//输出结果
$ c' G6 R+ m" ^2 E8 c) L* x* |$ z return 0;//函数返回值为0) j5 Z+ ~5 D8 d7 ^. ?
} r( t" p0 X+ @& @
1 ?$ Z( I1 Y5 q
编译结果:
/ t1 a# \* j3 F8 S0 ]5 b华氏度98的摄氏度为:36.666668- q% V/ N y# T! I. g" q
--------------------------------. z! H' L0 W f& {2 `! U" X
Process exited after 1.796 seconds with return value 0
1 n; W5 X6 x- ]; F请按任意键继续. . .
1 Z8 f( x1 w' Q7 L0 ~" r% \( [, [5 Q& S ?: X, n1 Z1 |% r' ]2 H
读者应该会很容易的看懂这道例题,但是有一点需要读者格外的注意,就是这行代码
9 c' L9 k5 s7 `% X& r, zcentigrade=(5.0/9)*(f_Degree-32);
. U! J' N M# L9 {& a% y& P5 `6 D2 c, R+ p! F9 {
如果写成% Q- w# q/ B: T5 b' {2 W; E9 b: p
centigrade=(5/9)*(f_Degree-32);
& U! X7 L6 I9 I& K/ `
* K, U4 I4 M8 ~7 {( w# y: R那么就会出现逻辑性错误,如下输出:0 W& p/ \" I$ G% ?! v
华氏度98的摄氏度为:0.000000
* n" {1 U4 Q- Q) i8 _, _--------------------------------
* o* A$ K3 l; Y DProcess exited after 1.967 seconds with return value 0
* o1 y) {, a% S请按任意键继续. . .7 F ]4 A4 f) |6 J4 R5 t& [
3 U9 d# X( h* ?因为在C语言中不声明格式,这种整数相除的被除数比除数大的,会直接等于0,没有小数点后面的数字。 |
|