首页 > 用户发贴区 > 编程问题提问区 > 我跪求高手进来解决下
2008
05-01

我跪求高手进来解决下

#include “stdio.h”
main()
{
float I,z,x,y;
scanf(“%f”,&z);
if(z>=1000000.0) y=10.0;
else y=z/100000.0;
switch(y)
{
case 0:I=z*100000;break;
case 1:I=(z-100000.0)*0.75+(100000.0*0.1);break;
case 2:I=2.0*(100000.0*0.1)+(z-200000.0)*0.05;break;
case 3:I=4.0*(100000.0*0.1)+(z-400000.0)*0.03;break;
case 4:I=6.0*(100000.0*0.1)+(z-600000.0)*0.01;break;
case 5:I=10.0*(1000000.0*0.1)+(z-1000000.0)*0.01;break;
}
printf(“%10.2f”,I);
}
这个程序case 4  出了问题      输出60W以上的显示的都是-NAN   其他几个都正确


我跪求高手进来解决下》有 3 条评论

  1. fanfeiyn 说:

    当然会这样了,当大于60W后,y=(60w/10w)>5

    超过了switch(y)的取值,你规定的case 最大的也只是5!

  2. powers7 说:

    程序本身好像也有问题吧!!y可以是float吗??

留下一个回复