java编程:输入某个班学生的成绩,输入-1时,表示输入结束。计算该班的学生人数、最高分、最低分和平均分

作者&投稿:徐念 (若有异议请与网页底部的电邮联系)
输入10个学生的分数用fun函数实现最高分、最低分和平均成绩的计算~

输入10个学生的分数用fun函数实现最高分、最低分和平均成绩计算的代码如下:
#include
#include
#include
using namespace std;
#define NUM 10
void fun(double arry[],int n)
{
double max,min,average;
max=*max_element(arry,arry+n);
min=*min_element(arry,arry+n);
average=accumulate(arry,arry+n,0.0)/n;
cout<<"最高分:"<<max<<endl
<<"最低分:"<<min<<endl
<<"平均分:"<<average<<endl;
}
int main()
{
double marks[NUM];
cout<<"依次输入"<<NUM<<"个学生的成绩:"<<endl;
for(int cnt=0;cnt!=NUM;++cnt)
cin>>marks[cnt];
fun(marks,NUM);
return 0;
}
结果演示!

扩展资料:
C/C++ 语言标准库中没有fun函数。fun函数是自定义函数,是使用来举例或作语法演示的,需要在使用前自行定义声明。fun一词没什么特别含义,也可以换成别的名称,如"abc"者"baidubaike"。
它只表示引用之前出现的函数,以调用它执行一些需求,int fun(int x,int y)只是一个举例的函数名而已,以及其声明的参数类型。
C/C++语言中,fun函数通常被主函数所调用。它是指用fun来定义一个函数(或方法),这样在引用时可以用fun表示。
比如int fun(int x,int y),void fun(char* a,char* b) 等等。有先前的定义,就可以在主函数里调用它,比如ans=fun(3,7);或者fun(p1,p2);。
参考资料来源:百度百科-fun函数

package test;import java.util.Scanner;public class MaxMin {public static void main(String[] args) {Scanner input = new Scanner(System.in);int max =0, min =0;while(true){int param = input.nextInt();if(param == -1){break;}if (param>max) {max = param;}if (param<min) {min = param;}}System.out.print("max="+max+" , min="+min); input.close();}}当然我这里是以0为基准,或者你可以设置别的数字。

1、题目描述:

/*java编程:输入某个班学生的成绩,输入-1时,表示输入结束。计算该班的学生人数、最高分、最低分和平均分*/

分析:

根据题目可知,①需要连续输入数据,并将连续输入的数据保存,②记录输入的数据个数③需要有输入数据内容判断,如果输入-1则停止输入,执行计算。

2、代码如下


public static void main(String[] args) {

ArrayList<Float> gList=new ArrayList<>();//定义浮点型动态数组,用作记录成绩,也可以取数组长度作为人数
Scanner input =new Scanner(System.in);
float grade=0;
 for ( ;grade!=-1;  ) {//当输入-1时结束
 System.out.println("请输入学生成绩(-1结束输入):");
 grade=input.nextFloat();
 if (grade!=-1) {//避免最后一次录入-1
 gList.add(grade);
}

}
//当输入-1时停止记录数据
 
 
//求最高分
//最低分
float max=0,sum=0,aveg=0;
float min=gList.get(0);//取第一项作为最低分初始值
for (int i = 0; i < gList.size(); i++) {

if (max<gList.get(i)) {
max=gList.get(i);
}
if (min>gList.get(i)) {
min=gList.get(i);
}
sum+=gList.get(i);//求总分
}

//平均分
aveg=sum/gList.size();
System.out.println("共有 "+gList.size()+"人,"+"最高分:"+max
+",最低分:"+min+",平均分:"+aveg);

}

3、运行效果




首先定义一个计算总分的,计算人数的,计算最低分数的,计算最高分数的变量。再利用do{}while();循环来控制当用户输入-1时结束循环直接将结果输出。在do{}while();当用户输入第一个成绩时,我们可以将值赋值给最低分数,循环时,用户没输入一个成绩时人数自增加1,将用户输入的成绩和用来存储最低分数的值进行对比,如果输入成绩小于最低成绩,则最低分数=输入的成绩,如果最高成绩小于输入成绩,则最高成绩=输入的成绩,并将输入的成绩增加到总分中,到循环结束时平均分就等于总分/人数即可。
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String score = "0";
float scroes = 0;
int num = 0;
float minscore=0;
float maxscore=0;
do{
num++;
System.out.println("请输入成绩:");
if(num==2) minscore=Float.parseFloat(score);
if(minscore>Float.parseFloat(score)) minscore=Float.parseFloat(score);
if(maxscore<Float.parseFloat(score)) maxscore=Float.parseFloat(score);
scroes+=Float.parseFloat(score);
score = sc.nextLine();
}while(Float.parseFloat(score)!=-1);
System.out.println("共计学生" + (num-1) + "人,总分为" + scroes + ",最低分数为" + minscore + ",最高分数为" + maxscore + ",平均分为" + scores/(num-1));
}

public static void main(String[] args){
    double min = 0.0;    //最低分
    double max = 0.0;    //最高分
    double sum = 0.0;   //所有成绩总和
    double average = 0.0;  //平均成绩
    int amount = 0;     //学生数量
    double grade = 0.0;   //成绩
    Scanner scan = new Scanner(System.in);
    do{
    System.out.println("请输入学生的成绩:");
    grade = scan.nextDouble();
    if(grade == -1 )
      break;
    if(grade>=max)
       max = grade;
    if(grade<=min)
       min = grade;
    sum + = grade;
    amount++;
    }while(true);
    average = sum/amount;
    System.out.println("自己写!");
}


import java.util.*;
/**
 * @author hardneedl
 */
public class ScoreInputDemo {

    interface FilteredAction <T,R> {
        /**
         * 判断是否接受
         * @param t 输入的数值
         * @return <code>true</code>表示接受; <code>false</code>表示拒绝
         */
        boolean accept(T t);

        /**
         * 干活吧
         * @param t 输入参数
         */
        void perform(T t);

        /**
         * 取计算结果
         * @return 结果
         */
        R getResult();
    }

    public static void main(String... args) {
        FilteredAction<Integer, List<Integer>> filteredAction = new FilteredAction<Integer, List<Integer>>() {
            List<Integer> scores = new ArrayList<>(50);

            public boolean accept(Integer t) {
                return t > -1 && t < 101;
            }

            public void perform(Integer t) {
                if(accept(t)){
                    scores.add(t);
                }
            }

            public List<Integer> getResult() {
                return new ArrayList<>(scores);
            }
        };

        System.out.println("请输入分数(输入-1时,表示输入结束):");
        Scanner scanner = new Scanner(System.in);

        int i = scanner.nextInt();

        while (i!=-1) {
            filteredAction.perform(i);
            i = scanner.nextInt();
        }


        List<Integer> scores = filteredAction.getResult();

        System.out.printf("人数:%d
", scores.size());

        IntSummaryStatistics is = scores.stream().mapToInt(value -> value).summaryStatistics();
        System.out.printf("最高分:%d
",is.getMax());
        System.out.printf("最低分:%d
",is.getMin());
        System.out.printf("平均分:%f
",is.getAverage());
    }
}

FilteredAction 这个类抽象了三个方面

1)录入分数的有效性判断

2)如何处置录入的分数

3)获取录入后的原始数据内容


使用java 8 的lambda 表达式来计算最大最小值,平均值(这种编程方式源代码简洁)



import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class T {

public static void main(String[] args) {
// 定义分数,最大值,最小值,平均分
int count = 0;
double max = 0.0;
double min = 0.0;
double avg = 0.0;

// 实例化Scanner
Scanner in = new Scanner(System.in);
// 创建数组用来储存成绩
ArrayList<Double> al = new ArrayList<Double>();
double tmp = 0;
try {
// 接收成绩
for (int i = 0;; i++) {
System.out.println("请输入第" + (i + 1) + "个学生的成绩");
if ((tmp = in.nextDouble()) != -1) {
al.add(tmp);
count = i+1;
} else
break;
}
} catch (RuntimeException e) {
e.printStackTrace();
}

// 排序
Collections.sort(al);

// 赋值
max = al.get(al.size() - 1);
min = al.get(0);
int sum = 0;
for (double a : al) {
sum += a;
}
avg = sum / count;

// 输出结果
System.out.println("总人数" + count + "最大值" + max + "最小值" + min + "平均分" + avg);
}
}
控制台:
请输入第1个学生的成绩
12
请输入第2个学生的成绩
18
请输入第3个学生的成绩
30
请输入第4个学生的成绩
-1
总人数3最大值30.0最小值12.0平均分20.0



一个java编程题:若输入字符串str如“ABBCCCCAA”,则输出的结果是A1B2C...
以下是示例代码:public static void main(String[] args) throws Throwable { String str = "ABBCCCCAA";char[] cs = str.toCharArray();\/\/转换为char数组 StringBuilder result = new StringBuilder();\/\/结果保存对象 result.append(cs[0]);\/\/加入第一个字符 int count = 1;\/\/计数器 \/\/从...

java编程:从键盘输入5个数,求这5个数中的最大数与最小数并输出。_百度...
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in);int n=sc.nextInt();int min=0;int max=0;int []b=new int[5];for(int i=0;i<5;i++){ b[i]=sc.nextInt();} min=max=b[0];for(int i=1;i<...

用java语言编程:从键盘中输入十个无序的数字,从大到小输出。
import java.io.BufferedReader;import java.io.InputStreamReader;public class Demo { public static void main(String[]args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in));System.out.println("请输入10个数字,每个数字之间用“,”分割:");String...

java编程:从键盘输入3个数,求最大值,求最小值,求从大到小进行排列!!在 ...
import java.util.Scanner;\/** * 从键盘输入n个整数,求着n个数的最大值 * @author young * *\/public class Exam {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("输入一个整数n确定数组大小:");int n = input.nextInt();int[]...

java编程中输入一个数后,对其进行判断,不符合要求需重新输入,代码怎么...
写个while死循环,在循环中要求用户输入内容,判断内容是否符合,符合就break出循环

java编程:从键盘输入字符串,并按字典顺序倒序打印
import java.util.ArrayList;import java.util.Scanner;public class JudgeString { public static void main(String[] args) { \/\/ 接受键盘输入 Scanner in = new Scanner(System.in); \/\/ 保存输入数据的List ArrayList<String> list = new ArrayList<String>(); System.out.println("请...

java中编程输入10位同学的成绩,输出最高分?
package com;import java.util.Scanner;public class ArrayTest { public static void main(String[] args) { int[]array = new int[10];int temp = 0;System.out.println("请输入成绩:");for(int i =0;i<array.length;i++){ Scanner sc =new Scanner(System.in);array[i] = sc....

java入门编程题:某班有十位同学,请顺序输入十位同学的学号,保存在数组...
import java.util.Scanner;public class Students { public static void main(String[] args) { Scanner in = new Scanner(System.in);String[] students=new String[10];String No=null;for (int i = 0; i <10 ; i++) { System.out.println("请输入学号:");No=in.next();students[...

java编程用IF语句做的.从键盘输入任意三个整数,用IF条件语句来比效三...
1.读入三个数,存入数组numarr[];2.如果a>b,则a,b互换;3.如果a>c,则a,c互换;4.如果b>c,则b,c互换;5.输出c,b,a;即为从大到小的顺序。代码如下:import java.io.*;import java.util.Scanner;public class compare{ public static void main(String[]args){ System.out.println("...

【急求】Java编程。 从键盘上任意输入 20 个整数,分别计算并显示奇...
\/\/从键盘上任意输入 20 个整数,分别计算并显示奇、偶数的和。import java.util.Scanner;public class Test_1{public static void main(String args[]){int[] a=new int[20];int[] b=new int[20];int sum1=0,sum2=0;Scanner sc=new Scanner(System.in);for(int i=0;i<20;i++){...

龙安区17388312361: 急!急1急!用java编写简单的学生成绩录入程序 -
曲史依诺: 当年我学C语言的时候,这个问题有考过,这边显示方式不方便用代码实现,我给你几个要点.1, 建一个学生类,有四个字段,分别表示学生名,英语,计和数的成绩.2, 建一个输出类,即含有方法 public static void main(String[] args),并在...

龙安区17388312361: 谁知道这个程序用java如何编写,题目用java编写一个简单的学生成绩录入程 -
曲史依诺: import java.io.*;public class Test {public static void main(String[] args) throws Exception{int n;float[] s;BufferedReader br=new BufferedReader(new InputStreamReader(System.in));String [] strs; System.out.print("请输入学生人数:");...

龙安区17388312361: java用for循环录入某学生五门课程的成绩并计算平均分,如果分数为负,停止录入并提示错误. -
曲史依诺: import java.util.Scanner; public class demo16 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //循环录入某学生5门课的成绩并计算平均分.如果某分数录入为负,停止录入并提示录入错误 //循环录...

龙安区17388312361: 如何用java编写一个程序,读入学生成绩获取最高分best,然后根据下面的规则赋等级值: -
曲史依诺: 最简单的输入输出了,键盘获取分数输入,程序判断分数登记,输出成绩与等级情况即可 源码很容易的. 具体如下: import java.util.Scanner;public class Marks { public void getMark(int stuNum,int[] rtnStuMark) { Scanner input=new Scanner(...

龙安区17388312361: 如何用java编写一个程序,读入学生成绩,获取最高分best,然后根据下面的规则赋等级值: -
曲史依诺: 直接在IDE里面输入数据吗? 那是这样的: import java.util.Scanner; public class Marks { public void getMark(int stuNum,int[] rtnStuMark) {Scanner input=new Scanner(System.in);int i;for(i=0;i<stuNum;++i) {System.out.print("输入第" + (i...

龙安区17388312361: Java编写程序从键盘输入20个同学的成绩,成绩用数组存放,对输入的每一 -
曲史依诺: import java.util.Arrays; import java.util.Scanner;public class F {public static void main(String[] args){Scanner sc=new Scanner(System.in); int a[]=new int[20];int total=0;for(int x=0;x<20;x++){System.out.println("请输入第"+(x+1)+"个学...

龙安区17388312361: java编程:输入一个班的成绩存入数组,统计优、良、中、及、不及的人数. -
曲史依诺: 威宁九中2016年高二十四班的会考成绩

龙安区17388312361: JAVA简单编程:教师统计学生分数并输出 -
曲史依诺: Student.java public class Student { public String stuName; public String stuClass; public int Averpoint; public int Math; public int Chinese; public int Gym; Student(String stuname,String stuclass,int math,int chinese,int gym){ stuName=stuname; ...

龙安区17388312361: 是关于java的一个编程题,希望大家帮帮忙啊,从键盘上输入学生的成绩,然后统计学生成绩的分布情况 -
曲史依诺: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class test {public static void main(String[] args) throws IOException {String score0 = "";String score1 = "";String score2 = "";String ...

龙安区17388312361: java编程,用switch语句编写一个学生成绩等级评定 -
曲史依诺: 如图:输入大于100或者小于0得数会提示错误 import java.util.Scanner; public class Test {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入成绩:");int score=input.nextInt();if(...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网