新手上路

来源:互联网 发布:mac 删除软件 编辑:程序博客网 时间:2024/05/01 22:45

大神 求解  这题思路正确与否?

 

#include <stdio.h>
int a=2;
int f(int n)
{
static int a=3;/*此a标注为a1*/
int t=0;
if(n%2)
{
static int a=4;/*此a标注为a2*/
t+=a++;
}
else 
{
static int a=5;/*此a标注为a3*/
t+=a++;
}
return t+a++;
}
void main()
{
int s=a,i;
for(i=0;i<3;i++)
s+=f(i);
printf("%d\n",s);
}
/*解题思路:
s=s+f(i),s=a,a=2所以s=2.
i=0,1,2
n=0,1,2
(1)n=0时,t=t+a3++.t=5.a3=6.返回t+a++为t+a1等于5+3,a1=4.s=2+(5+3).
(2)n=1时,t=t+a2++.t=4.a2=5.返回t+a++为t+a1等于4+4,a1=5.s=10+(4+4).
(3)n=2时,t=t+a3++.t=6.a3=7.返回t+a++为t+a1等于6+5,a1=6.s=18+(6+5).
综上:s最后等于29.


不能确定此答案是否合理,还请指教,非常感谢*/

0 0