公务员面试现场打分。有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));
}
}
} int main()
{
int i = 0;
int j = 0;
int n = 0;
int t = 0;
int nums[7];
while (1)
{
for (i = 0; i < 7; i++)
{
if (scanf("%d", &nums[i]) == EOF)
{
return 0;
}
}
for (i = 0; i < 7; i++)
{
for (n = 0; n < 6 - i; n++)
{
if (nums[n] < nums[n + 1])
{
t = nums[n];
nums[n] = nums[n + 1];
nums[n + 1] = t;
}
}
}
int sum = 0;
for (i = 1; i < 6; i++)
{
sum = sum + nums[i];
}
double avg = sum / 5.0;
printf("%.2f\n", avg);
}
return 0;
}输入数,先排序,再去掉两端值取平均值,多组输入模块是问AI改的
#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);
}