下面是关于C语言的基本概念和编程方面的叙述,回答问题,将答案填入对应栏内。 【说明】 企业根据利润提成发放奖金。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成15%;利

admin2018-11-21  37

问题 下面是关于C语言的基本概念和编程方面的叙述,回答问题,将答案填入对应栏内。
【说明】
企业根据利润提成发放奖金。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成15%;利润在20万到40万之间时,高于20万元的部分,可提成20%;40万到60万之间时高于40万元的部分,可提成25%;60万到100万之间时,高于60万元的部分,可提成30%;高于100万元时,高于100万元的部分可提成35%。已知企业本年度12个月的月利润存储在数组profit中,程序要求根据月利润计算月奖金并存储到数组bonus中,然后计算并返回该企业的年度总利润total_profit。该程序的实现如下:
【程序】
int calculate—bonus(const int profit[],int bonus[])

int n=12;
int i=0;
int sum_profit=0;
int bonus1,bonus2,bonus4,bonus6,bonus10;
bonus1=100000*0.1;
bonus2=bonus1+100000*0.15;
bonus4=bonus2+200000*0.2;
bonus6=bonus4+200000*0.25;
bonus10=bonus6+400000*0.3;
for(i=0;i<n;i++)
{
if(profit<=100000)
(1)
else if(profit<=200000)
(2)
else if(profit<=400000)
(3)
else if(profit<=600000)
(4)
else if(profit<=1000000)
(5)
else
(6)

/*以下代码计算年度总利润*/
i=0;
while(i<n)
sum profit+=profit[++i];
return  sum_profit;

分析程序中的计算年度总利润的代码,指出错误的一行代码,将错误代码写到(1)处;然后用一条语句实现正确代码,将正确代码写到(2)处。

选项

答案(1)sum_profit+=profit[++i]; (2)sum_profit+=profit[i++];

解析 根据题意,1月到12月份的利润分别保存在profit[0]到profit[11]之中。所以年度总利润应该是profit[0]+profit[1]+profit[2]+…+profit[11]。而语句:
sum_profit  += profit[++i];
等价于:
i=i+1;
sum_profit=sum_profit+profit
在计算年度总利润的代码中就等于profit[1]+profit[2]+…+profit[12]。这并不符合题意,是错误的。正确的代码应为:
sum_profit+=profit[i++];
转载请注明原文地址:https://kaotiyun.com/show/iQWZ777K
0

相关试题推荐
随机试题
最新回复(0)