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

为什么这样会错误?

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

    getGirth(a,b,c);//调用周长函数

    return 0;

}

提问者:C_Bridge 2019-10-13 15:16

个回答

  • qq_慕尼黑1241971
    2019-10-20 02:12:46
    已采纳

    问题一、cirf没有在主函数中定义,cirf是int getGirth(int a,int b,int c)中的变量,只作用于这个函数,函数外无法使用。

    问题二、在主函数定义cirf后需要初始化值,不然就是随机数。

    问题三、函数调用放在printf后输出不会显示被调用的函数的返回值,可以使用赋值在printf前把函数的返回值赋给cirf。

    综上,解决方法:int cirf=getGirth(a,b,c);printf("三角形的周长是:%d\n", cirf);

  • qq_慕尼黑1241971
    2019-10-20 02:13:44

    或者还可以printf("三角形的周长是:%d\n", getGirth(a,b,c);这样解决

  • 慕前端0556179
    2019-10-16 17:41:14

    亲,你这里提示什么错误呢】


  • qq_雨小辰_0
    2019-10-13 22:41:39

    cirf没有初始化,要先令他等于  0

  • 慕码人5550149
    2019-10-13 18:33:02

    cirf在子函数里要用到主函数的话要先声明可以在主函数里int cirf;一下