”1/i“中'1'是整数,"i"也是整数,则结果也是整数,如:5/2的结果是2。如果改为”5.0/2”则结果为2.5。另外,i>1之后,“1/i”的结果就是零了,所以你的那个结果就是1了。C语言除法法则:当两个操作数都是整数是,运算结果是整数,即“整除”;如果参加运算的两个数中有一个是实数,则结果就是实数。你自己好好体会一下吧!
因为1/i=0(i>1时),然后转换为float型的t还是等于0
你的循环do {t=1/i; s=s+t; i++; }while(i<=3); 有问题,因为do...while..默认循环一次,其意义为做什么直到什么闲荡遇知己算了括号里一次
注意判断条件if(i%2),只要"i%2",只要不为0此条件就成立,所以即使改成i<1,在进入do后就成执行s=s+i这一句,所以结果就为s=1了。根据你的意思,判断条件应该为if(i%2 ==0)才对。