首页 > 编程语言 >编程初学者入门7_公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。(复习冒泡排序+C、Java中局部变量不赋值不能使用))

编程初学者入门7_公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。(复习冒泡排序+C、Java中局部变量不赋值不能使用))

时间:2023-06-28 10:32:48浏览次数:50  
标签:初始化 float 变量 int sum 每组 冒泡排序 array 成绩


题目描述

公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。

  • 输入描述:
    一行,输入7个整数(0~100),代表7个成绩,用空格分隔。
  • 输出描述:
    一行,输出去掉最高分和最低分的平均成绩,小数点后保留2位,每行输出后换行。
    示例1
  • 我的解答

首先想到的是直接输入7个值,找到最大值和最小值,然后丢弃最大值、最小值加起来,求平均值

但是 分支两个两个比较又太繁琐,因此想到利用 数组 + 冒泡排序

排序后的数组,丢弃第一个、最后一个元素然后求平均值

# include<bits/stdc++.h>
using namespace std;
# define len 7
int main()
{
    int a[len] = {0};
    int num;
    int temp,sum = 0;
    float avg;
    
    for(int i = 0;i<len;i++){
          scanf("%d",&num);
          a[i] = num;
            
    }
        
    //冒泡
    for(int i = 0;i< len -1;i++){
        for(int j = 0;j<len - i -1;j++){
            if(a[j]>a[j+1]){
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }
    for(int i = 1;i< len -1;i++){
        sum = sum + a[i];
    }
    avg = sum/5.0;
    printf("%.2f",avg);
    return 0;
    
}

Java来写

import java.util.Scanner;
import java.util.Arrays;
import java.util.ArrayList;
public class Main{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        double avg,sum = 0;
        int[] arr = new int[7];
        for(int i = 0;i<7;i++){
            arr[i]  = sc.nextInt();
        }
        Arrays.sort(arr);
        for(int j = 1;j<6;j++){
            //sum = sum+ arr[j];
            sum += arr[j];
        }
        avg = sum/5.0;
        System.out.printf("%.2f",avg);
        
    }
}

这里也是需要注意,局部变量必须初始化然后在使用!

调用Arrays.sort()方法排序

编程初学者入门7_公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。(复习冒泡排序+C、Java中局部变量不赋值不能使用))_java

需要注意的是:

开始我定义的局部变量sum 并未初始化赋值,然后 后面 sum = sum + a[i] ;不通过

原因是局部变量要进行初始化后 再使用 否则出现随机值

  • C语言中变量不赋初bai值是不能”使用“的。这个du”使用“是指读取变量的zhi内容。因为,未赋初dao的变量中存储的数据是个随机值,其值不确定。
  • 随机值的产生原因:变量都是存储在内存中的。程序运行以后,会在内存中给各个变量安置住处,这些地方以前可能有别的程序用过,里面留有上次使用后的结果数据,但系统不负责分配空间,不会清理内容,需要编程者自己清理。程序退出时也不清理内容,这就造成了后来者进到这个空间,看到一堆垃圾数据。
  • 一些编程者,没有”定义变量进行初始化“的编程习惯,或由于疏漏没有给变量赋初值,而直接去使用变量中的数据,这样就会出现随机现象:有的可以,有的不可以。原因就是内存数据刚是否符合调用者的条件造成的,符合的就可以,不符合的就出错。
  • 因此,养成”定义变量就初始化“的好习惯,在使用变量”进行运算“前,一定要注意检查变量是否已按自己的要求进行了赋值。

另:C语言全局变量的初始化是系统自动完成的,编程者可以不用单独处理。

  • 题解

一般直接思路

#include<iostream>
#include<iomanip>  //C++中浮点数保留小数点的有文件要有此文件

using namespace std;

int main()
{
    int a[8];
    int max=0;
    int min=100;
    for(int i=0;i<7;++i)
    {
        cin>>a[i];
        if(max<a[i])
            max=a[i];//max始终等于最大的那个
        if(min>a[i])
            min=a[i];//min始终等于最小的那个
    }//这个for循环的目的是找出最大值max和最小值min
    float result;
    result=(float)((a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[0]-max-min)*1.0/5);//求出平均值
    cout<<fixed<<setprecision(2)<<result<<endl;//设置要保留的小树点点数
}

C++调用排序函数

include 
using namespace std;
int main(){
float array[10];
for(int i = 0 ; i < 7; i++) {
cin >> array[i];
}
sort(array, array + 7);
float sum = 0;
for(int i = 1; i < 6; i++) {
sum += array[i];
}
cout << fixed << setprecision(2) << sum / 5 << endl;
return 0;
}


标签:初始化,float,变量,int,sum,每组,冒泡排序,array,成绩
From: https://blog.51cto.com/u_15790456/6569643

相关文章

  • 6-8次PTA题目集(成绩计算系列)BLOG-3
    1.前言对题目集的总结:1.知识点第6次:6-1课程成绩计价程序-1锻炼学生自主构建类(maybe,如果是完全参考题目给的那当我没说),实现继承,组合关系的能力。第7次:或许是上次作业有些学生不太理想,所有第七次出了几个小题去让学生了解一些知识点:7-1 容器-HashMap-检索(相当于利用HashMap......
  • Python+mysql+tkinter+matplotlib的可视化学生成绩管理系统课程设计
    使用模块要求:tkinter、numpy、openpyxl、matplotlib、pymysql、re、time;其中matplotlib用于绘制统计图开发工具:pycharm专业版、python3.7、mysql8.0需要咨询、源码、定做、QQ扫码加:https://img-mid.csdnimg.cn/release/static/image/mid/ask/153137086786150.jpg点击此处链接......
  • 学生成绩管理系统
    【题目18】学生成绩管理系统设计实现一个管理学生成绩的系统。#include<iostream>#include<fstream>#include<set>#include<map>usingnamespacestd;structCourse{stringCourseName;stringCourseCredit;}course[100];structSTC{stringStudentNam......
  • 26.冒泡排序
    每当皇帝选妃时,首席太监小桂子总是忍不住在旁边偷窥这些候选的美女,有一次他发现做为伴读小书童的你居然犯了个常人都可以轻易看出的错误,有几位候选的美女站成如下一排:当我们采用前面的选择排序时,我们仍然要将候选者遍历5遍,才能完成最终的排序,但其实,本身这些美女除了第一个外,已经......
  • [JLOI2016]成绩比较
    题目描述G系共有\(N\)位同学,\(M\)门必修课。这\(N\)位同学的编号为\(0\)到\(N-1\)的整数,其中B神的编号为\(0\)号。这\(M\)门必修课编号为\(0\)到\(M-1\)的整数。一位同学在必修课上可以获得的分数是\(1\)到\(U_i\)中的一个整数。如果在每门课上A获得......
  • 学生成绩系统
    学生分数系统(文章目录)前言本文介绍一个ifelse的小案例,帮助大家理解ifelse。一、学生成绩系统#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>intmain(void){ intscore; while(1) { printf("请输入学生分数\n"); scanf("%d",&score); if(score<0||......
  • PTA第6-8次成绩系统分析
    PTA第6~8次题目分析前言:第6-8次的成绩系统和之前菜单系统的结构和逻辑都有很多相似的地方,包括信息第二部分的处理判断都需要建立在第一部分上,以及排序输出等。不过这次的排序输出有点新东西,要按中英文的首字母顺序排,我也是搜过之后才学会这点。这次成绩系统还存在不简单的错误提......
  • 课程成绩统计程序1-3
    课程成绩统计程序系列分析博客采取总——分模式总体分析:1.最终设计类图:2.最终设计圈复杂度:3.最终设计代码:点击查看代码importjava.util.*;importjava.text.Collator;importjava.util.TreeMap;publicclassMain{publicstaticvoidmain(String[]args)......
  • PTA6-8次题目集(成绩计算系列)总结
    1.前言6-8次作业题量不大,难度较菜单计价较小,但实现过程依旧繁琐知识点输入和输出处理:你需要从用户或文件中读取输入数据(课程信息和学生成绩),然后相应地进行处理。你可以使用诸如读取控制台输入(Scanner 类)或从文件读取技术。字符串操作和解析:你需要将输入的字符串分割后提......
  • Python 算法之冒泡排序
    Python算法之冒泡排序冒泡排序冒泡排序算法的原理如下:(从后往前)1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一......