为了账号安全,请及时绑定邮箱和手机立即绑定

请教一个小问题

#include <stdio.h>
int getGirth(int a,int b,int c)
{
    if( (a+b)<=c || (a+c)<=b || (b+c)<=a )   //判断是否为三角形
    {
        printf("不构成三角形\n");
        return 0;                               
    }
    else
    {
      int cirf = a+b+c;     //计算三角形周长
      return cirf;
    }
      
}

int main()
{
    /* 定义三角形三边长 */
    int a, b, c;
    a = 3;
    b = 4;
    c = 5;
    printf("三角形的周长是:%d\n", getGirth());  //调用周长函数
    return 0;
}

用这样的代码的时候  出来的结果为什么会是 “三角形的周长是:4195712 ”呢

正在回答

2 回答

printf("三角形的周长是:%d\n",getGirth());这一句里面的调用函数“getGirth()”添加参数a,b,c.即是getGirth(a,b,c),再次运行就可以得出结果了。这是因为getGirth()里面的参数是形参,它只在函数内部有效,函数调用结束返回主函数后则不能再使用该形参变量(这句话是重点)而主函数main()里面的参数是实参,实参在进行调用时必须具有确定的值,故有a=3;b=4;c=5;这些赋值,以便把这些值传给形参,因此应该用赋值的方法是实参获得确定的值。希望对你有帮助。

1 回复 有任何疑惑可以回复我~
#1

PANDEDE 提问者

谢谢 请问你的意思是不是主函数main()后面的printf的括号里面不能有形参 我这样理解对吗。。
2017-01-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926018    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

请教一个小问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信