java吧 关注:1,214,673贴子:12,661,832
  • 9回复贴,共1
//下面这个语句我想让它输出t为1+2/1+3/1......+20/1,它为啥输出为“t的值为1‘’?
public class hellojava {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int c,x,t;
c=0;
x=0;
t=0;
while(x<=20){
x=x+1;
c=1/x;
t=c+t;
}
System.out.println("t等于"+t);
}
}


IP属地:河北1楼2016-10-03 21:17回复
    因为你的t是int类型!它只会取整数部分的1 后面小数部分省略了


    IP属地:湖北来自Android客户端4楼2016-10-03 21:25
    回复
      c=1/x;
      System.out.print("1/"+x+"+");
      //这样可以了


      7楼2016-10-04 01:08
      回复
        之前也遇到这个问题诶好巧


        来自Android客户端8楼2016-10-04 01:14
        回复
          结果是一分之一加二分之一一直加到二十分之一输出t是int型四舍五入取整就是1


          来自Android客户端9楼2016-10-04 01:22
          收起回复
            t 值的20次变化,float 转成int 的时候直接舍去了小数部分,c只有第一次的1 有值,然后1加了19次0,结果自然是0了


            10楼2016-10-04 04:17
            回复
              想学我送你套视频,你自学看看


              IP属地:广东11楼2016-10-04 11:59
              收起回复