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

学习 时间:2026-04-07 00:50:55 阅读:1363
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

最佳回答

眯眯眼的樱桃

呆萌的香烟

2026-04-07 00:50:55

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*mm=n%x+y++; // n除以x取余数然后再加上y ,赋值给m后,y再自加1return(m);} 整个计算过程是这样的:第一次调用adds(a,b);n*=++m //m=1 n=n*1=3m=n%x+y++; // n%x+y++=n%x+y=3%5-1=2return(m); //m=2,所以c=2,第一次结果为2 第二次调用adds(a,b);n*=++m //m=3 n=n*3=3*3=9m=n%x+y++; // n%x+y++=n%x+y=9%5-1=3return(m); //m=3,所以c=3,第二次结果为3 提问者看这里:1、请提问者认真对待自己的提问,分清谁是抄袭,谁是原创。2、每一次错误的采纳,不仅证明了您的智商,也伤害了认真答题的人。3、如果答案正确,请在15分钟内采纳,谢谢合作。 再问: 请问return (m)是把m的值给c?还是直接显示到屏幕为m的值? 再答: 是把m的值给c

最新回答共有2条回答

  • 彪壮的乐曲
    回复
    2026-04-07 00:50:55

    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*mm=n%x+y++; // n除以x取余数然后再加上y ,赋值给m后,y再自加1return(m);} 整个计算过程是这样的:第一次调用adds(a,b);n*=++m //m=1 n=n*1=3m=n%x+y++; // n%x+y++=n%x+y=3%5-1=2return(m); //m=2,所以c=2,第一次结果为2 第二次调用adds(a,b);n*=++m //m=3 n=n*3=3*3=9m=n%x+y++; // n%x+y++=n%x+y=9%5-1=3return(m); //m=3,所以c=3,第二次结果为3 提问者看这里:1、请提问者认真对待自己的提问,分清谁是抄袭,谁是原创。2、每一次错误的采纳,不仅证明了您的智商,也伤害了认真答题的人。3、如果答案正确,请在15分钟内采纳,谢谢合作。 再问: 请问return (m)是把m的值给c?还是直接显示到屏幕为m的值? 再答: 是把m的值给c

上一篇 Cu(OH)2转化Cu2O的方程式

下一篇 如何用两个单刀单掷开关控制一盏灯?需要电路图!