简单的c语言问题,其实,很多刚入门的朋友弄不明白

    xiaoxiao2021-11-06  49

    #include  main()  { int m=7,n=4;  float a=38.4,b=6.4,x;  x=m/2+n*a/b+1/2;  printf("%f/n",x);  } 为什么是27.000000,我求出来是28.000000,为什么1/2不参加运算,求指导。回答: 因为程序的m/2中,m与2都是整形,它的结果也是整形 所以当m=7时,m/2=7/2=3而不是3.5 而1/2同样,结果为0 所以正确的写法 x = m / 2.0 + n * a / b + 1.0 / 2; 问题:若int x=1,y=0; 则表达式 ( y == x>>1 ) ? ++ x/++ y : ++ x 的运算结果是什么? 回答: 先计算 x>>1,因为x=1,所以结果为0; 再计算y==(x>>1),结果相等 所以表达式值执行 ++x/++y; 因为是先++,所以先计算x=x+1=2 y=y+1=1 再计算2/1结果表达式的值为2 最终 x=2 y=1 表达式值为2
    转载请注明原文地址: https://ju.6miu.com/read-678052.html

    最新回复(0)