1 条题解
-
0
C :
#include<stdio.h> int b[101]; int main(){ int n,i,j,s=0,k,temp; scanf("%d",&n); int a[n]; for(i=0;i<n;i++){ scanf("%d",&a[i]); k=a[i]; s=s+k; b[k]++; } printf("%.2lf ",s*1.0/n); int t=0; for(i=0;i<n;i++){ if(b[t]<b[i]){ t=i; } } printf("%d ",t); for(i=0;i<n-1;i++){ for(j=0;j<n-1;j++){ if(a[j]>a[j+1]){ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } if(n%2!=0){ printf("%.1lf",a[n/2]*1.0); }else{ printf("%.1lf",(a[n/2]+a[n/2-1])/2.0); } return 0; }C++ :
#include<iostream> #include<iomanip> using namespace std; void sort(int a[],int n); int main(){ int n; int a[10000]; int b[101]; int m=0; double mid=0; double avg=0; int s=0; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; b[a[i]]++; s=s+a[i]; } int max=0; for(int i=0;i<=100;i++){ if(b[i]>max){ max=b[i]; m=i; } } avg=s*1.0/n; sort(a,n); if(n%2!=0){ mid=a[n/2]; } else{ mid=(a[n/2]+a[n/2-1])*1.0/2; } cout<<setiosflags(ios::fixed)<<setprecision(2)<<avg<<" "; cout<<m<<" "; cout<<setiosflags(ios::fixed)<<setprecision(1)<<mid<<endl; } void sort(int a[],int n){ int t=0; for(int i=0;i<n;i++){ for(int 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; } } } }Pascal :
var a:array[0..10002] of integer; num:array[0..102] of integer; i,res2,n,sum,aa,max,nn,mm:longint; res3,res1:real; procedure sort(l,r: longint); var i,j,x,y: longint; begin i:=l; j:=r; x:=a[(l+r) div 2]; repeat while a[i]<x do inc(i); while x<a[j] do dec(j); if not(i>j) then begin y:=a[i]; a[i]:=a[j]; a[j]:=y; inc(i); j:=j-1; end; until i>j; if l<j then sort(l,j); if i<r then sort(i,r); end; begin read(n); sum:=0;aa:=0;max:=0;nn:=0;mm:=0; for i:=1 to n do begin read(a[i]); if(a[i]>max) then max:=a[i]; inc(num[a[i]]); sum:=sum+a[i]; end; res1:=sum/n; for i:=1 to max do begin if(num[i]>nn)then begin nn:=num[i]; mm:=i; end; end; res2:=num[mm]; sort(1,n); if(n mod 2=0) then res3:=(a[n div 2]+a[n div 2+1])/2 else res3:=a[n div 2+1]; write(res1:0:2,' ',res2,' ',res3:0:1); end.Java :
import java.util.Scanner; public class Main{ //对数组元素排序(改进的冒泡算排序) public static void sort(int[] a){ int t; boolean f; for(int i = 1;i < a.length;i++){ f = false;//假设没有做任何交换 for(int j = 0;j < a.length - i;j++){ if(a[j] > a[j + 1]){ t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; f = true;//做了交换 } } if(f == false){ break; } } } //求中数 public static double middleNum(int[] a){ double r = 0; if(a.length % 2 == 0){ r = (a[a.length / 2] + a[a.length / 2 - 1]) * 1.0 / 2; }else{ r = a[a.length / 2]; } return r; } //求众数 public static int maximum(int[] a){ int r = 0;//出现次数最多的数 int c = 0;//连续数字出现的次数 int m = 0;//最多数字出现的次数 for(int i = 0;i < a.length;i++){ c++; if(i == a.length - 1 || a[i] != a[i + 1]){ if(c > m){ m = c; r = a[i]; } c = 0; } } return r; } public static void main(String[] args) { //读入数组的实际长度和数组元素 Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] a = new int[n]; int s = 0;//总和 for(int i = 0;i < n;i++){ a[i] = sc.nextInt(); s += a[i]; } double v = s * 1.0 / n;//平均值 sort(a); System.out.println(String.format("%.2f",v) + " " + maximum(a) + " " + String.format("%.1f",middleNum(a))); sc.close(); } }Python :
n=int(input()) l1=list(map(int,input().split())) s=0 for i in range(0,n): s+=l1[i] a=s/n #平均数 l2=[] for i in range(0,20): l2.append(0) for i in l1: l2[i]+=1 b=max(l2) #众数 l1.sort() if n%2!=0: c=l1[n//2] else: c=(l1[n//2-1]+l1[n//2])/2 #中位数 print('{:.2f}'.format(a),b,'{:.1f}'.format(c))
- 1
信息
- ID
- 174
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 4
- 已通过
- 1
- 上传者