公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。
(注:本题有多组输入)
一行,输入7个整数(0~100),代表7个成绩,用空格分隔。
一行,输出去掉最高分和最低分的平均成绩,小数点后保留2位,每行输出后换行。
99 45 78 67 72 88 60
73.00
#include <stdio.h> #include <stdlib.h> int cmp_int(const void* e1, const void* e2) { return *(int*)e1 - *(int*)e2; } int main() { int arr[7]; int max = 0, min = 0; while (~scanf("%d %d %d %d %d %d %d", arr, arr + 1, arr + 2, arr + 3, arr + 4, arr + 5, arr + 6)) { qsort(arr, 7, 4, cmp_int); printf("%.2f\n", (arr[1] + arr[2] + arr[3] + arr[4] + arr[5]) / 5.0); } return 0; }
#include<stdio.h> int main(){ int s[7] , high , low , mid_var , sum ; float ave; while( scanf("%d %d %d %d %d %d %d",&s[0],&s[1],&s[2],&s[3],&s[4],&s[5],&s[6]) != EOF ) { sum = 0; for( int i = 0; i < 7 ; i++) { sum = sum + s[i]; } //求最大值 for(int i = 0 ; i < 6 ; i++) { if( s[i] > s[i+1] ) { mid_var = s[i]; s[i] = s[i+1]; s[i+1] = mid_var; } high = s[6]; } //求最小值 for(int i = 0 ; i < 6 ; i++) { if( s[i] < s[i+1] ) { mid_var = s[i]; s[i] = s[i+1]; s[i+1] = mid_var; } low = s[6]; } ave = ( sum - high - low ) / 5.0; printf("%.2f \n",ave); } return 0; }
#include <stdio.h> void Sort(int arr[]){ for(int i = 0; i < 7; i++){ for(int j = i+1; j < 7; j++){ if(arr[i] > arr[j]){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; }}}} int main(){ int arr[7] = { 0 }; while(scanf("%d %d %d %d %d %d %d", &arr[0], &arr[1], &arr[2], &arr[3], &arr[4], &arr[5], &arr[6]) != EOF){ int sum = 0; Sort(arr); for(int i = 1; i <= 5; i++){ sum += arr[i]; } printf("%.2f\n", (float)sum / 5); } return 0; }
#include<bits/stdc++.h> using namespace std; int main(){ int minn = 1000; int maxn = -1; int n,sum = 0; while(cin>>n){ for(int i=1;i<=7;i++){ minn = min(minn, n); maxn = max(maxn, n); sum += n; if(i != 7) cin>>n; } //printf("%d %d\n",minn,maxn); double ans = 1.0*(sum -(minn + maxn))/5; printf("%.2lf\n",ans); sum = 0; minn = 1000; maxn = -1; n = 0; } return 0; }
#include<stdio.h> int main() { int n = 0; int arr[7]; while(scanf("%d %d %d %d %d %d %d", &arr[0],&arr[1],&arr[2],&arr[3],&arr[4],&arr[5],&arr[6])!=EOF) { int max = 0; int min = 0; int sub = 0; int i = 0; for (i = 0;i < 7;i++) { if (arr[i] > max) { max = arr[i]; } if (min == 0 || arr[i] < min) { min = arr[i]; } sub += arr[i]; } printf("%.2f\n", (sub-max-min) / 5.0); } return 0; }
#include<bits/stdc++.h> using namespace std; int main(){ int score[7]; for(int i = 0; i < 7; i++) cin >> score[i]; sort(score, score + 7); double ans; for(int i = 1; i <= 5; i++){ ans += score[i]; } ans /= 5; cout << fixed << setprecision(2) << ans << endl; return 0; }
import java.io.*; import java.util.Arrays; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] str = br.readLine().split(" "); int[] scores = new int[str.length]; double sum = 0; double avg = 0; for(int i = 0; i < str.length; i++) { scores[i] = Integer.parseInt(str[i]); sum = sum + scores[i]; } Arrays.sort(scores); int max=scores[scores.length-1]; int min=scores[0]; avg = (sum - max - min) / (scores.length - 2); System.out.printf("%.2f",avg); } }
#include <stdio.h> int main() { int a, max = 0, small = 100, sum = 0, count = 0; while (scanf("%d", &a) != EOF) { if (a > max)//判定最高分 { max = a; } if (a < small)//判定最低分 { small = a; } sum += a; count++;//计数器 if (count == 7)//计数器=7时代表一组的分数好了可以进行计算 { printf("%.2f\n", (sum - max - small) / 5.0); count = 0;//重置 max = 0;//重置 small = 100;//重置 sum = 0;//重置 } } return 0; }
#include <iostream> using namespace std; int main() { int a[7]; while(scanf("%d%d%d%d%d%d%d", &a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6]) != EOF) { int max = -1, min = 101, sum = 0; for (int i = 0; i < 7; i ++ ) { if (a[i] > max) max = a[i]; if (a[i] < min) min = a[i]; sum += a[i]; } double res = 1.0 * (sum - max - min) / 5.0; printf("%.2lf\n", res); } }
#include<cstdio> int main() { int i,j,tmp; float a[7],sum=0; scanf("%f %f %f %f %f %f %f",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6]); //类似冒泡排序找出最大值放在a[6] for(i=0;i<6;i++) { if(a[i]>a[i+1]) { tmp=a[i]; a[i]=a[i+1]; a[i+1]=tmp; } } //找出最小值放在a[0] for(j=5;j>0;j--) { if(a[j]<a[j-1]) { tmp=a[j-1]; a[j-1]=a[j]; a[j]=tmp; } } for(tmp=j+1;tmp<i;tmp++) { sum+=a[tmp];//此时j=0,i=6,求出a[1]~a[5]的和 } printf("%.2f",sum/5); return 0; }
#include <stdio.h> int main() { int score = 0; int i = 0; float ave = 0; float sum = 0; int max = 0; int min = 100; while (scanf("%d", &score) != EOF ) { sum += score; if (max < score) { max = score; } if (min > score) { min = score; } i++; if (i%7==0) { ave = (sum - max - min) / 5; printf("%.2f\n", ave); sum=0; max=0; min=100; } } }
#include<stdio.h> int main(void){ int arr[7]; int temp; double avg_score; while(scanf("%d %d %d %d %d %d %d", &arr[0], &arr[1], &arr[2], &arr[3], &arr[4], &arr[5], &arr[6]) != EOF){ for(int i = 0; i < sizeof(arr) / sizeof(int) - 1; i++){ // 循环取数进行比较 for(int j = i; j < sizeof(arr) / sizeof(int); j++){ // 循环逐一进行比较 if(arr[i] > arr[j]){ // 冒泡排序:从小到大排列 temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } for(int i = 1; i < 6; i++){ // 计算总分 avg_score += arr[i]; } printf("%.2f\n", avg_score / 5); // 计算平均分并打印 avg_score = 0; // 重置平均分为0 } }
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); float num = 0; while (sc.hasNext()){ //得到字符数组 String st=sc.nextLine(); String[] str=st.split(" "); //创建整数组 int[] score=new int[str.length]; //放进数组 for(int i=0;i<str.length;i++) { score[i]=Integer.parseInt(str[i]);} //先排序,再截取,不用截取,遍历的时候不找他们就行了 Arrays.sort(score); for(int i=1;i<score.length-1;i++) { num+=score[i];} System.out.printf("%.2f",num/(score.length-2)); } } }
#include <stdio.h> #include<stdlib.h> int compare(const void* e1, const void* e2) //排序数组 { return *(int*)e1 - *(int*)(e2); } int main() { int arr[7] = { 0 }; while(scanf("%d %d %d %d %d %d %d",&arr[0],&arr[1],&arr[2],&arr[3],&arr[4],&arr[5],&arr[6]) !=EOF) { qsort(arr, 7, sizeof(int), compare); //排序数组升序 int count = 0; for (int i = 1; i < 6; i++) //去掉第一个元素和最后一个元素 { count += arr[i]; } double average = count / 5.0; //求平均分 printf("%.2lf\n", average); }
#include <stdio.h> int main() { int score[7]; while (scanf("%d%d%d%d%d%d%d", &score[0], &score[1], &score[2], &score[3], &score[4], &score[5], &score[6])!=EOF) { int max = 0; int min = 100; for (int i = 0; i < 7; i++) { if (score[i] < min) min = score[i]; if (score[i] > max) max = score[i]; } float sum = 0; for (int i = 0; i < 7; i++) { sum += score[i]; } printf("%.2f\n", (sum - max - min) / 5.0); } return 0; }