1 条题解

  • 0
    @ 2023-6-11 12:16:30

    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;
    }
    

    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
    2204
    时间
    1000ms
    内存
    16MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者