为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这样会错误?

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

}

正在回答

5 回答

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

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

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

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

4 回复 有任何疑惑可以回复我~
#1

qq_慕村0435642

透彻明了
2019-11-25 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
亲,你这里提示什么错误呢】


0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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



0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926020    人
  • 解答问题       20793    个

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

进入课程

为什么这样会错误?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信