改错题

给定程序MODI1.C中函数fun的功能是计算小 于形参k的最大的10个能被13或17整除的自然数 之和。k的值由主函数传入,若k的值为500,则函 数值为4622。
请改正程序中的错误,使程序能输出正确的 结果.
注意:不要改动main函数,不得增行或删行, 也不得更改程序的结构!
给定源程序如下。

【正确答案】

(1 ) if((k%13==0)ll(k%17==0))
(2 ) k--;
(3)}

【答案解析】

(1)    C语言中,x能被y整除的表示方法是 x%y=0,而不是题目中所表示的x%=0。所以应改 为 if((k%13==0)ll(k%17==0))。
(2)    根据题意,计算的是500以内的最大的10 个能被13或17整除的自然数之和,所以每判断一 次k就减1,所以为k--。
(3)    程序中缺少程序完整所必需的 } ,此类信 息在做题时一定要注意,可以在做题前先运行一下 程序,这样明显的错误一般都会有错误信息显示出 来。比如丢失 } 的错误信息是"Compound statement missing } in function fun”。