分类：电脑/网络-软件
问题：求解一道Ｃ程序的问题main(){floatx=2.0,y;if 
main(){ flt x=2.0,y;  if(x<0.0) y=0.0;  else if((x<5.0)&&(!x)) y=1.0/(x+2.0);  else if(x<10.0) y=1.0/x;  else y=1.0;  printf("%f\n",y);}上面的程序运行后得出的结果为：0.500000我有以下几个问题不明白，请各位高手指教：１： else if((x<5.0)&&(!x)) y=1.0/(x+2.0);　中的(!x)是什么意思，难道是自己否定自己吗？main(){ flt x=2.0,y;  if(x<0.0) y=0.0;  else if((x<5.0)&&(!x)) y=1.0/(x+2.0);  else if(x<10.0) y=1.0/x;  else y=1.0;  printf("%f\n",y);}上面的程序运行后得出的结果为：0.500000我有以下几个问题不明白，请各位高手指教：１： else if((x<5.0)&&(!x)) y=1.0/(x+2.0);　中的(!x)是什么意思，难道是自己否定自己吗？２：看了结果我想程序最终也是执行了 else if((x<5.0)&&(!x)) y=1.0/(x+2.0);这行才得出的结果，我不明白y=1.0/(x+2.0)=1.0/4.0 从书上我了解到"/"号取得的结果是商，所以我自己理解这个运行的结果应该是０啊。
回答：多重条件语句范围有重叠，导致路径不唯一，再有还是去补习一下C的那些基本知识吧，你不知道除法运算符吗？