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

为什么我把return crif;改成printf("%d\n", crif);会出错

#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;     //计算三角形周长
      printf("%d\n", cirf);
    } 
}
int main()
{
    /* 定义三角形三边长 */
    int a, b, c;
    a = 5;
    b = 4;
    c = 3;
    printf("三角形的周长是:%d\n", getGirth(a, b, c));  //调用周长函数
    return 0;
}

这样的输出结果是

12

三角形的周长是3

提问者:Ibuki_suga 2018-10-17 13:08

个回答

  • JavaEEGoodeHua
    2018-11-21 17:32:55

    原理是,main将3个值传给getGirth这个函数。getGirth处理完后,然后return,是将值在返回给main函数。没返回的话,main后面拿不到值。

  • IT小慕
    2018-10-18 19:06:04

    因为没有返回值,你在

    把return crif;改成printf("%d\n", crif);

    的下一行加上 return 0;

    就可以运行了。

  • 慕工程2012503
    2018-10-17 14:15:58

    应该是函数没有返回值报的错,不要删那个return试试看