问答题 给定程序MODI1.C中fun函数的功能是:求 S=aa"' aa —…—aaa — aa —a (此处aa "'aa表示n个a,a和n的值在1至9之间) 例如 a=3,n=6,则以上表达式为: S= 333333 — 33333 — 3333 — 333 — 33 —3 其值是:296298 a和n是fun函数的形参,表达式的值作为函数值传回main函数。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include long fun (int a,int n) { int j ; /*********found**********/ long s = 0,t = 1 ; t = t * 10 + a ; s=t; for(j=1;j
【正确答案】正确答案:(1) long s=0,t=0; (2) t=t/10;
【答案解析】解析:函数的功能是求s=aa… aa—…—aaa — aa —a。 (1)当进入第一循环,“t=t*10+a,”语句,如果输入的a是3,并且利用题目中给出的初始化值1,计算得出t的值为13,而实际应该是3,由此可知t的初值设置不正确,不应该是1。所以将“long s=0,t=1;”改为“long s=0,t=0; ”。 (2)循环中通过语句“t=t%10; ”来获得每一项,每循环一次,t的值应缩小10倍,这里应该用除以10来实现,而不能用“%”求余数。所以将“t=t%10; ”改为“t=t/10; ”。