K&R第4页一个简单的例子,自己第一次写的错误的与改正之后的代码:
错误的: ftoc函数结果为0
#include "stdafx.h"
int ftoc(int f)
{
int c = (5 / 9)*(f - 32);
return c;
}
int _tmain(int argc, _TCHAR* argv[])
{
int f = 0;
int i = 20;
while (f*i<=300)
{
printf("%d\t%d\n", f*i, ftoc(f*i));
f++;
}
return 0;
正确的:
#include "stdafx.h"
int ftoc(int f)
{
float d = (5.0 / 9.0)*(f - 32.0);//也可以改为int c=5*(f-32)/9 不然要强转类型,而且float d = (5/ 9)*(f - 32)也是错的。
int c= (int)d;
return c;
}
int _tmain(int argc, _TCHAR* argv[])
{
int f = 0;
int i = 20;
while (f*i<=300)
{
printf("%d\t%d\n", f*i, ftoc(f*i));
f++;
}
return 0;
}