作业帮 > 综合 > 作业

C 语言新手求助大神解释下面这个程序怎么运行的.

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/25 08:54:58
C 语言新手求助大神解释下面这个程序怎么运行的.
main() {int a=5,b=-1,c;
c=adds(a,b);
printf(“%d”,c);
c=adds(a,b);
printf(“%d\n”,c);
}
int adds( int x,int y)
{static int m=0,n=3;
n*=++m;
m=n%x+y++;
return(m);
}
结果:2,3
main() {int a=5,b=-1,c;
c=adds(a,b);
printf(“%d”,c);
c=adds(a,b);
printf(“%d\n”,c);
}
int adds( int x,int y)
{static int m=0,n=3; //定义了静态变量
n*=++m; //m自加1,然后n=n*m
m=n%x+y++; // n除以x取余数然后再加上y ,赋值给m后,y再自加1
return(m);
}




整个计算过程是这样的:
第一次调用adds(a,b);
n*=++m //m=1 n=n*1=3
m=n%x+y++; // n%x+y++=n%x+y=3%5-1=2
return(m); //m=2,所以c=2,第一次结果为2

第二次调用adds(a,b);
n*=++m //m=3 n=n*3=3*3=9
m=n%x+y++; // n%x+y++=n%x+y=9%5-1=3
return(m); //m=3,所以c=3,第二次结果为3


提问者看这里:
1、请提问者认真对待自己的提问,分清谁是抄袭,谁是原创.
2、每一次错误的采纳,不仅证明了您的智商,也伤害了认真答题的人.
3、如果答案正确,请在15分钟内采纳,谢谢合作.
再问: 请问return (m)是把m的值给c?还是直接显示到屏幕为m的值?
再答: 是把m的值给c