改错题
给定程序MODI1.c中函数fun的功能:根据输入的三个边长(整型值),判断能否构成三角形;构成的是等边三角形,还是等腰三角形。若能构成等边三角形,则函数返回3;若能构成等腰三角形,则函数返回2;若能构成一般三角形,则函数返回1,若不能构成三角形,则函数返回0。
请改正函数fun中指定位置的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序如下:
#include <stdio.h>
#include <math.h>
/**************found**************/
void fun(int a,int b,int c)
{ if(a+b>c && b+c>a && a+c>b) {
if(a==b && b==c)
return 3;
else if(a==b||b==c||a==c)
return 2;
/**************found**************/
else retrun 1
}
else return 0;
}
main()
{ int a,b,c,shape;
printf('\nInput a,b,c: '); scanf('%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)根据题意函数返回值为int型,所以应改为int fun(int a,int b,int c)。 (2)在能构成三角形的前提下,如果不能构成等边三角形或等腰三角形,则返回1,语句应该以分号“;”结束,还要注意return拼写错误。