请教一个小问题

来源:5-4 形参与实参

PANDEDE

2017-01-18 15:35

#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 ”呢

写回答 关注

1回答

  • 慕瓜2161724
    2017-01-18 20:57:05

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

    PANDED...

    谢谢 请问你的意思是不是主函数main()后面的printf的括号里面不能有形参 我这样理解对吗。。

    2017-01-18 21:06:37

    共 1 条回复 >

C语言入门

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

926028 学习 · 20793 问题

查看课程

相似问题