回 帖 发 新 帖 刷新版面

主题:[讨论]小弟才接触编程,问个初级的编程问题

#include<stdio.h>
#include<math.h>
int main
{
    int a,b,c;
    printf("please input a,b,c\n")
    if(a>0&&b>0&&c>0&&a+b>c&&a+c>B&&b+c>a)
    {
    if(a=b||b=c||a=c)
        printf("等边三角形\n");
    else if(a=b=c)
        printf("等边三角形\n");
    else if(sqrta=sqrtb+sqrtc||sqrtb=sqrta+sqrtc||sqrtc=sqrta+sqrtb)
        printf("直角三角形\n");
    else if((a=b||b=c||a=c)&&(sqrta=sqrtb+sqrtc||sqrtb=sqrta+sqrtc||sqrtc=sqrta+sqrtb))
        printf("等腰直角三角形\n");
    else 
        printf("一般三角形\n");
    }
    else
        printf("Error input!\n");
    return 0;
}



这样编不晓得,对不对,。

显示1 error(s), 0 warning(s)

就是找不到。

回复列表 (共7个回复)

沙发

在线等.、谢谢了。

板凳


你的a,b,c的值呢??
a+c>B?  应该是a+c>b
a=b||b=c||a=c  这不是判断 应该是a==b||b==c||c==a
a=b=c  同理  a==b&&b==c

3 楼

#include<stdio.h>
#include<math.h>
int main()
{
    int a,b,c;
    printf("please input a,b,c\n");
    scanf("%d%d%d",&a,&b,&c);
    if(a>0&&b>0&&c>0&&a+b>c&&a+c>b&&b+c>a)
    {
    if(a==b||b==c||a==c)
        printf("等腰三角形\n");
    else if(a==b==c)
        printf("等边三角形\n");
    else if(sqrt(a)==sqrt(b)+sqrt(c)||sqrt(b)==sqrt(a)+sqrt(c)||sqrt(c)==sqrt(a)+sqrt(b))
        printf("直角三角形\n");
    else if((a==b||b==c||a==c)&&(sqrt(a)==sqrt(b)+sqrt(c)||sqrt(b)==sqrt(a)+sqrt(c)||sqrt(c)==sqrt(a)+sqrt(b)))
        printf("等腰直角三角形\n");
    else 
        printf("一般三角形\n");
    }
    else
        printf("Error input!\n");
    return 0;
}

4 楼


a==b==c没这表达式的

5 楼

a==b==c,应该拆开,写为a==b&&b==c,意思是“a等于b并且b等于c”。注意C语言里面,判断相等是不能连着写的。

另外,楼主需要考虑一下条件判断的顺序。
比如这个:
    if(a==b||b==c||a==c)
        printf("等腰三角形\n");
    else if(a==b==c)
        printf("等边三角形\n");

假设输入:3 3 3,则a==b判断成立,于是执行printf("等腰三角形\n");
也就是说,即使应该是等边三角形,出来的结果却是“等腰三角形”。

修改一下,先判断是否是等边三角形、等腰直角三角形,再判断是否是等腰三角形、直角三角形。

6 楼

看看的

7 楼

谢谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册