问答题 给定程序MODI1.C中函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形:构成的是等边三角形,还是等腰三角形。若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。 请改正函数fun中指定部位的错误,使它能得出正确的 结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include /**********found**********/ v02d fun(int a,int b,int c) { if(a+b>c&&b+c>a&&a+c>b){ if(a==b&&b==c) return 3; el se if(a==b || b==c || a==c) return 2; /**********found**********/ else return 1 } else retl5trn 0; } main() { int a,b,c,shape ; printf("/nInput a,b,c:");scarlf ("%d%d%d",&a, &b,&c); printf("/na=%d, b=%d, c=%d/n",a,b,c); shape=fun(a,b,c); printf("/n/nThe shape:%d/n", shape); }
【正确答案】正确答案:(1)int fun(int a,int b,int c) (2)else return 1;
【答案解析】解析:(1)主函数内fun函数的调用形式是:“shape=fun(a,b,c);”,函数有返回值,且返回值类型是整型,故第一标识下应改为“int fun(int a,int b,int c)”。 (2)第二个标识下的else语句应该是指除了等边及等腰三角形之外的三角形,在C语言中,语句是以分号“;”结束,而第二标识下的语句没有以分号结束,故第二标识下应改为“else return 1;”。