#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 其他几个都正确
>> 本文固定链接: http://www.vcgood.com/archives/2317
>> 转载请注明: m13554550158 2008年05月01日 于 C语言帝国 发表
当然会这样了,当大于60W后,y=(60w/10w)>5
超过了switch(y)的取值,你规定的case 最大的也只是5!
程序本身好像也有问题吧!!y可以是float吗??