1 条题解

  • 0
    @ 2025-10-10 15:45:27

    C :

    #include<stdio.h>
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	int i,k,t,j,a[n];
    	double s;
    	for(i=0;i<n;i++){
    		scanf("%d",&a[i]);
    	}
    	for(i=0;i<n-1;i++){
    		k=i;
    		for(j=i+1;j<n;j++){
    			if(a[j]<a[k]){
    				k=j;
    			}
    			if(k!=i){
    				t=a[i];
    				a[i]=a[k];
    				a[k]=t;
    			}
    		}
    	}
    	for(i=1;i<n-1;i++){
    		s+=a[i];
    	}
    	printf("%.2f",s/(n-2));
    	return 0;
    } 
    

    C++ :

    #include <iostream>
    #include <iomanip>
    using namespace std;
    int main(){
    	int n,i,max=0,min=10;
    	double s=0;
    	int a[10];
    	cin>>n;
    	for(i=0;i<n;i++){
    		cin>>a[i];
    	}
    	for(i=0;i<n;i++){
    		if(a[i]>max){
    			max=a[i];
    		}
    		if(a[i]<min){
    			min=a[i];
    		}
    	}
    	for(i=0;i<n;i++){
    		s=s+a[i];
    	}
    	s=(s-max-min)/(n-2)*1.00;
    	cout<<fixed<<setprecision(2)<<s<<endl;
    }
    

    Pascal :

    var a:array[1..100000] of longint;
        i,b,max,min:longint;
        s:real;
    begin
    read(b);
    for i:=1 to b do
    read(a[i]);
    min:=10000000;
    for i:=1 to b do
    begin
    if a[i]>max then max:=a[i];
    if a[i]<min then min:=a[i];
    end;
    for i:=1 to b do
    s:=s+a[i];
    s:=s-max-min;
    s:=s/(b-2);
    write(s:0:2);
    end.
    

    Java :

    import java.util.Scanner;
    public class Main {
    	public static void main(String[] args) {//45 12 89 65
    		@SuppressWarnings("resource")
    		Scanner sc=new Scanner(System.in);
    		int a=sc.nextInt();
    		int[] n=new int[a];
    		for(int i=0;i<a;i++) {
    			n[i]=sc.nextInt();		
    		}	
    		int max=n[0],min=n[0];
    		for(int i=0;i<n.length;i++) {
    			if(n[i]>max) {
    				max=n[i];				
    			}
    			if(n[i]<min) {
    				min=n[i];				
    			}
    			}	
    		double c=0,t=0,k=0;
    		for(int i=0;i<n.length;i++) {
    		if(n[i]!=max&&n[i]!=min) {
    			c++;
    		t=t+n[i];
    		k=t/c;		
    	}
    	}	
    		System.out.printf("%.2f",k);
      }
    }
    

    Python :

    n=int(input())
    l1=list(map(int,input().split()))
    a=max(l1)
    b=min(l1)
    l1.remove(max(l1))
    l1.remove(min(l1))
    s=0
    for i in l1:
        s+=i
    c=s/(n-2)
    print('%.2f'% c)
    
    • 1

    信息

    ID
    163
    时间
    1000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    9
    已通过
    3
    上传者