c入门求帮忙改错

#include<stdio.h>intmain(){inta,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a<b){t=a;a=b;b=t};i... #include<stdio.h>
int main()
{
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if (a<b){t=a; a=b; b=t};
if (a<c){t=a;a=b;b=t};
if (b<c){t=b;b=c;c=b};
if (b+c<=a){ printf("%f","not a triangle"); halt};
a*=a;b*=b;c*=c;
if (b+c==a)
printf("%f","no")
else
printf("%f","yes");
getchar();
getchar();
return 0;
}
展开
 我来答
51CTO学院
2015-11-17 · 中国最大的IT实战在线培训平台
51CTO学院
中国最大的IT实战在线教育培训平台。
向TA提问
展开全部

看的出来确实是新手,首先的话你的分号有好几个地方位置错了,应该是紧跟语句后面,而不是写在{}后面;

其次的话,大概是因为不认真什么的吧,你的if(a<b)后面的写对了,但if(a<c)和if(b<c)后面都有错;

还有就是你对printf这个输出函数的用法错了,看的出来你大概是在对输入的三边能否构成三角形进行判断,然后再判断是否是直角三角形,但具体你要输出什么我就不是很清楚了,所以代码也只能按照我自己的意思改了,具体的你自己比较一下吧:

#include<stdio.h>
int main()
{
    int a,b,c,t;
    scanf("%d%d%d",&a,&b,&c);
    if (a<b){t=a; a=b; b=t;}//你原来的分号在 } 后面,但一般 } 后面是不需要分号的
    if (a<c){t=a; a=c; c=t;}
    if (b<c){t=b; b=c; c=t;}//这两行你自己比较一下就知道了
    if (b+c<=a){ printf("这三边无法构成三角形。"); }
    else {
    //只有可以构成三角形的时候才能说是不是直角三角形
    //也就是说如果不是三角形的话,也就没必要判断是不是直角了,所以我把后面所有的内容都用{}括起来了
        printf("这三边可以构成三角形,");
        a*=a;b*=b;c*=c;
        if (b+c==a)
        printf("且是直角三角形");//你这里本来是“no”,但满足a+b==c的话,应该是直角吧
        else
            printf("但不是直角三角形");
    }
    getchar();
    getchar();
    return 0;
}

至于printf的具体用法,你自己看看书吧,这里说起来实在太麻烦。。。

运行的结果如下:



推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式