问答详情
源自:5-4 形参与实参

关于cirf的问题

#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,cirf;

    a = 3;

    b = 4;

    c = 5;

    getGirth(a,b,c);

    cirf=a+b+c;

    printf("三角形的周长是:%d\n", cirf);  //调用周长函数

    return 0;

}


 getGirth(a,b,c)里面不是已经定义了cirf=a+b+c了吗?为什么后面主函数里还要再定义一次

提问者:Hiuln 2019-10-20 00:51

个回答

  • qq_慕尼黑1241971
    2019-10-20 02:05:31
    已采纳

    cirf只是自己定义的函数中的变量,只作用在int getGirth(int a,int b,int c)中,你在主函数中再次定义cirf并使用了cirf=a+b+c;输出时就直接会得到主函数中cirf的结果,和自定义函数没有半点关系了,而且printf中cirf可以直接换成函数调用getGirth(a,b,c)。

  • 慕前端5260257
    2020-02-12 20:26:36

    你这样的画就和你自定义的函数没有关系了,为什么要定义有参函数呢?就是因为在复杂的代码中如果要修改的画只修改main函数中的值就行了