1 条题解

  • 0
    @ 2025-4-7 21:28:48

    C :

    #include <stdio.h>
    #include <math.h>
    int main()
    {
    	int a,b,c;
    	double area,p;
    	scanf("%d %d %d",&a,&b,&c);
        p=(a+b+c)/2.0;
    	if((a+b>c)&&(a+c>b)&&(b+c>a))
    	{area=sqrt(p*(p-a)*(p-b)*(p-c));
    	printf("%.3f",area);}
    	printf("\n");
    	return 0;
    }
    

    C++ :

    #include <stdio.h>
    #include <math.h>
    #define calcS(a, b, c) (0.5 * ((a) + (b) + (c)))
    #define calcArea(a, b, c) \
    	(sqrt(calcS(a, b, c) * \
    	(calcS(a, b, c) - (a)) * \
    	(calcS(a, b, c) - (b)) * \
    	(calcS(a, b, c) - (c))))
    int main() {
    	int a, b, c;
    	scanf("%d%d%d", &a, &b, &c);
    	printf("%.3f\n", calcArea(a, b, c));
    	return 0;
    }
    
    

    Pascal :

    var
      a,b,c:longint;
      s,d:double;
    begin
      readln(a,b,c);
      d:=(a+b+c)/2;
      s:=sqrt(d*(d-a)*(d-b)*(d-c));
      writeln(s:0:3);
    end.
    
    

    Java :

    
    
    import java.text.DecimalFormat;
    import java.util.Scanner;
    
    public class Main {
      static DecimalFormat df = new DecimalFormat("0.000") ; 
      public static void main(String[] args) {
    	  Scanner s = new Scanner(System.in) ; 
    	  int a = s.nextInt() ;
    	  int b = s.nextInt() ;
    	  int c = s.nextInt() ;
    	  
    	  if(a+b>c&&a+c>b&b+c>a){
    		  System.out.println(f(a, b, c)) ;
    	  }
       }
       
       static String f(int a , int b , int c){
    	   double s = ((double)a+(double)b+(double)c)/2 ;
    	   
    	   double area = Math.sqrt(s*(s-a)*(s-b)*(s-c)) ;
    	   
    	   return df.format(area) ;
       }
    }
    
    
    • 1

    信息

    ID
    1342
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者