1 条题解
-
0
C :
#include <stdio.h> #include <stdlib.h> int main() { int a,i=0,s[100],u,j,t; double x,y,n; scanf("%d",&a); for(i=0;i<a;i++) { scanf("%d",&s[i]); } if(a%2==0) { for(i=0;i<a-1;i++) { for(j=i+1;j<a;j++) { if(s[i]>s[j]) { t=s[i]; s[i]=s[j]; s[j]=t; } } } x=s[a/2-1]; y=s[a/2]; printf("%.1f",(x+y)/2); } else if(a%2==1) { for(i=0;i<a-1;i++) { for(j=i+1;j<a;j++) { if(s[i]>s[j]) { t=s[i]; s[i]=s[j]; s[j]=t; } } } u=(a-1)/2; n=s[u]; printf("%.1f",n); } return 0; }
C++ :
#include <iostream> #include <iomanip> using namespace std; int main(){ int a[100],i,j,t,n ; double v; cin>>n; for(i = 0;i < n;i++){ cin>>a[i]; } for(i = 1;i < n;i++){ for(j = 0;j < n - i;j++){ if(a[j] > a[j + 1]){ t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } } } if(n % 2 == 0){ v = (a[n / 2] + a[n / 2 - 1]) * 1.0 / 2; }else{ v = a[n / 2]; } cout<<fixed<<setprecision(1)<<v<<endl; }
Python :
n = int(input()) s = input().split() l = [] avg = 0 for v in s: l.append(int(v)) # 从小到大排序 l.sort() # 如果个数是偶数,则中间数是中间两个数的平均数 if n % 2 == 0: avg = (l[n // 2 - 1] + l[n // 2]) / 2 #如果个数是奇数,则中间数就是最中间的那个数 else: avg = l[n // 2] print('%.1f' % avg)
- 1
信息
- ID
- 2163
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 6
- 标签
- 递交数
- 183
- 已通过
- 59
- 上传者