1 条题解

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

    C :

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

    C++ :

    #include <iostream>
    #include <iomanip>
    using namespace std;
    
    int main(){
    	int a[1000];
    	int n,i,j,min,s = 0;
    	cin>>n;
    	
    	for(i = 0;i < n;i++){
    		cin>>a[i];
    		s = s + a[i];
    	}
    	
    	min = a[0];
    	for(i = 0;i < n;i++){
    		if(a[i] < min){
    			min = a[i];
    		}
    	}
    	
        int x = 0; 
        for(i = 0;i < n;i++){
    		if(a[i] == min){
    			x++; 
    		}
    	}
    	
    	double v = (s - x * min) * 1.0 / (n - x);
    	cout<<fixed<<setprecision(1)<<v<<endl;
    }
    

    Pascal :

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

    Java :

    import java.util.Scanner;
    public class Main {
    	public static void main(String[] args) {
    		@SuppressWarnings("resource")
    		Scanner sc=new Scanner(System.in);	
    		int a=sc.nextInt();
    		int[] s=new int[a];		
    		for(int i=0;i<s.length;i++) {
    			s[i]=sc.nextInt();
    		}
    		int min=s[0];
    		for(int i=0;i<s.length;i++) {
    			if(s[i]<min) {
    				min=s[i];
    			}							
    		}	
    	int[] n=new int[s.length];
    	double d=0,p=0,c=0;
    		for(int i=0;i<n.length;i++) {
    			if(s[i]>min) { 
    				n[i]=s[i];	
    				d+=n[i];
    				c++;
    				p=d/c;
    		}
    		}
    		System.out.printf("%.1f",p);		
      }
    }
    

    Python :

    n = int(input())
    m = input().split()
    l = []
    mi = 0
    su = 0
    c = 0
    #列表类型转换
    for v in m:
        l.append(int(v))
    #求列表最小值
    mi = min(l)
    #遍历l列表,把列表中等于最小值的元素去掉,得出余下的值的和
    for i in range(0, n):
        if l[i] != mi:
            su += l[i]
            c += 1
    print('%.1f' % (su / c))
    
    • 1

    信息

    ID
    213
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    2
    已通过
    2
    上传者