改错题 1.  下列给定程序中,函数proc()的功能是:根据输入的3个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回1;若不能,则返回0。
    例如,输入3个边长分别为3,4,5,实际输入时,数与数之间以Enter键分隔而不是逗号。
    请修改程序中的错误,使它能得出正确的结果。
    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
    试题程序:
    # include <stdio.h>
    # include <math.h>
    int proc(int a,int b,int c)
    {
    if(a+b>c&&b+c>a&&a+c>b)
    {
    if(a==b&&b==c)
    //****found****
    return 1;
    elseif(a==b||b==c||a==c)
    return 2;
    //****found****
    else return 3;
    }
    else return 0;
    }
    void 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=proc(a,b,c);
    printf("\n\ nThe shape:%d\n", shape);
    }
【正确答案】(1)错误:return 1;
   正确:return 3;
   (2)错误:return 3;
   正确:return 1;
【答案解析】 三条边都相等的三角形为等边三角形,按题目中要求,等边三角形返回3,若不是等边三角形也不是等腰三角形但是三角形则返回1,因此,“return 1;”应改为“return 3;”;“return 3;”应改为“return 1;”。