现在应该对了 #include <stdio.h> main () { long int i; float b; scanf("ld",&i); if (i<=100000) b=i*0.1; else if (i<=200000) b=b+(i-100000)*0.075; else if (i<=400000) b=b+(i-200000)*0.05; else if (i<=600000) b=b+(i-400000)*0.03; else if (i<=1000000) b=b+(i-600000)*0.015; else b=b+(i-100)*0.01; printf("%f",b); getchar(); }
这是我修改后的程序,程序中当时只要求精确到整数就可以了,所以我就没有定义成浮点型,其中getchar();我是用来做停顿看执行结果的,程序编译正确后可以拿掉,谢谢指点! #include <stdio.h> main () { long int i; int b1,b2,b4,b6,b10,b; scanf("%ld",&i); b1=100000*0.1; b2=b1+100000*0.075; b4=b2+200000*0.05; b6=b4+400000*0.03; b10=b6+600000*0.015; if (i<=100000) b=i*0.1; else if (i<=200000) b=b1+(i-100000)*0.075; else if (i<=400000) b=b2+(i-200000)*0.05; else if (i<=600000) b=b4+(i-400000)*0.03; else if (i<=1000000) b=b6+(i-600000)*0.015; else b=b10+(i-100)*0.01; printf("%d",b); getchar(); getchar(); }