首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个课后练习不解 求高手解答,该怎么处理

2012-03-29 
一个课后练习不解 求高手解答练习的要求是 what will be the output of the follwing programs:#includes

一个课后练习不解 求高手解答
练习的要求是 what will be the output of the follwing programs:
#include<stdio.h>
void main()
{
  int i=2,j=3,k,l;
  float a,b;
  k=i/j*i;
  l=j/i*i;
  a=i/j*j;
  b=j/i*i;
  pintf("%d%d%f%f",k,l,a,b);
}
难道输出结果不应该是232.000003.00000吗?
可为啥是"020.0000002.0000006"?
先谢谢各位大侠了,拜托答案给详细点。

[解决办法]
K是整形,i/j变整形后就是0,直接舍弃了小数部分 而j/i的值就是1
[解决办法]
i,j之间的运算是和k,l,a,b无关的。
即对于k=i/j*i,先计算i/j,计算结果转化为整型(为0),再与i相乘(为整型0),计算结果最后赋值给k(=0);
对于b=j/i*i,先计算j/i,计算结果转化为整型(为1),再与i相乘(为整型2),计算结果自动转换为浮点型赋值给b(=2.00000)

热点排行