求助 代码逻辑有问题
查看原帖
求助 代码逻辑有问题
1499255
ceat楼主2025/1/2 20:55

萌新 想问一下各位大佬这样为什么不对 在输入为8 8 8时为什么输出还是d=4的情况

#include<stdio.h>
int main(){
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);
    int d=0;
    if(a+b>c&&a+c>b&&b+c>a){
        if(a==b&&b==c){
        d=1;
        }
		else if(a==b||b==c||a==c){
        d=2;
        }
        int a2=a*a,b2=b*b,c2=c*c;
        if(a2+b2==c2||a2+c2==b2||b2+c2==a2){
        if(d==2){
        	d=6;
        }
        else{
        	d=3;
        }
        }
		else 
		if(a2+b2>c2&&a2+c2>b2&&b2+c2>a2){
			if(d==1){
			d=1;
			}
			else{
			d=4;
			}
        }
		else{
        d=5;
        }
    } 
	else{
    d=0;
    }
    switch(d){
    	case 0:{
    		printf("Not triangle\n");
    		break;
    	}
    	case 1:{
    		printf("Isosceles triangle\n");
    		printf("Equilateral triangle\n");
    		break;
    	}
    	case 2:{
    		printf("Isosceles triangle\n");
    		break;
    	}
    	case 3:{
    		printf("Right triangle\n");
    		break;
    	}
    	case 4:{
    		printf("Acute triangle\n");
    		break;
    	}
    	case 5:{
    		printf("Obtuse triangle\n");
    		break;
    	}
    	case 6:{
    		printf("Isosceles triangle\n");
    		printf("Right triangle\n");
    		break;
    	}
	}
    return 0;
}
2025/1/2 20:55
加载中...