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

来源:5-4 形参与实参

Ibuki_suga

2018-10-17 13:08

#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

写回答 关注

3回答

  • 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;

    就可以运行了。

    慕粉0247... 回复Ibuki_...

    对的,return 的返回值 一定要是crif,要不然函数的调用值不会返回mian函数里

    2018-11-01 14:38:16

    共 2 条回复 >

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

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

C语言入门

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

926210 学习 · 20797 问题

查看课程

相似问题