因为g<=20000;g++
g=20000时执行下面的语句块,然后执行完之后,执行g++,g=20001,然后g与20000比较 g<=20000不成立
退出循环,输出为20001。
如果想输出为20000的话 把g<=20000 改为 g<20000即可。
希望对题主有所帮助,望采纳!!
1、工资范围在1-5000元之间的,包括5000元,适用个人所得税税率为0%;
2、工资范围在5000-8000元之间的,包括8000元,适用个人所得税税率为3%;
3、工资范围在8000-17000元之间的,包括17000元,适用个人所得税税率为10%;
4、工资范围在17000-30000元之间的,包括30000元,适用个人所得税税率为20%;
代码大致实现:
#include<stdio.h>
#include<stdlib.h>
int main(){
int i;
double a[20005];
for(i=10000;i<=20000;i++){
if(i>=10000&&i<=17000){
a[i]=i-(i-8000)*0.1-(8000-5000)*0.03;
}
else if(i>17000){
a[i]=i-(i-17000)*0.2-(17000-8000)*0.1-(8000-5000)*0.03;
}
}
double max=a[10000];
int flag=0;
for(i=10000;i<=20000;i++){
if(a[i]>max){
max=a[i];
flag=i;
}
}
printf("工资为%d时收入最大,为%lf:\n",flag,max);
return 0;
}