2个回答
展开全部
你首先要给我说你用的哪个编译器啊
我在VS2005下用你的相同代码得出的结果是三个数都是100
只是pow(float,float)才是正确的用法,你可以偿试把你的所有类型改一下试试,从你的测试结果来说,很可能是类型转换的时候的问题,int 型的i=2,被编译器转成float的时候有误差,只有1.999……,然后10的i次方不到100,只有99点几,然后转给a的时候再转换成int就只有99了,而你直接输入2的时候就没有问题。这只是一种猜测,你得把你的编译环境也作为条件给出来才能有准确的判断。
我在VS2005下用你的相同代码得出的结果是三个数都是100
只是pow(float,float)才是正确的用法,你可以偿试把你的所有类型改一下试试,从你的测试结果来说,很可能是类型转换的时候的问题,int 型的i=2,被编译器转成float的时候有误差,只有1.999……,然后10的i次方不到100,只有99点几,然后转给a的时候再转换成int就只有99了,而你直接输入2的时候就没有问题。这只是一种猜测,你得把你的编译环境也作为条件给出来才能有准确的判断。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询