重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
import java.math.BigDecimal;
创新互联主营敦化网站建设的网络公司,主营网站建设方案,重庆App定制开发,敦化h5微信小程序搭建,敦化网站营销推广欢迎敦化等地区企业咨询
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
String s = null;
int i = 1; //标识人数
int totalScore = 0; //总分
do
{
System.out.println("请输入第 " + i + " 位学生的成绩(输入 “-1” 结束输入开始计算平均分): ");
s = sc.nextLine();
if (!"-1".equals(s))
{
totalScore = totalScore + Integer.valueOf(s);
i++;
}
}while (!"-1".equals(s));
System.out.println("一共输入了 " + (i-1) + " 位学生的成绩");
System.out.println("总分是:" + totalScore);
System.out.println("平均分是:" + new BigDecimal(totalScore).divide(new BigDecimal(i-1)));
}
}
这个程序可以输入任意数量学生的成绩 然后输出学生的平均分,输入-1结束输入并计算平均分。
//
import java.util.Scanner;
//
public class Test2014 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入学生人数:");
int n = sc.nextInt();
int sum = 0;
for(int i = 1;i = n;++i){
System.out.println("输入第"+i+"个学生成绩:");
sum += sc.nextInt();
}
System.out.println("总成绩是:"+sum+" "+"平均成绩是:"+(double)sum/n);
}
}
Java 8 以上(包含java8) Lambda 方式,这种方式比较简洁,代码如下:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class App20 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ListFloat scores = new ArrayList();
System.out.println("请输入10个人的成绩:");
for (int i = 0; i 10; i++) {
scores.add(scanner.nextFloat());
}
float max = scores.stream().max((x, y) - Float.compare(x, y)).get();
System.out.println("最高分:" + max);
float min = scores.stream().min((x, y) - Float.compare(x, y)).get();
System.out.println("最低分:" + min);
float average = scores.stream().reduce(0.0f, Float::sum) / scores.size();
System.out.println("平均分:" + average);
scores.sort((x, y) - Float.compare(x, y));
System.out.println("从小到大分数排序:");
scores.forEach(s - System.out.print(s + " "));
long n = scores.stream().filter(r - r average).count();
System.out.println("\n高于平均分的有" + n + "个");
}
}
传统方式,如下:
import java.util.Arrays;
public class App21 {
public static void main(String[] args) {
float[] scores = new float[] { 10f, 9f, 8f, 7f, 6f, 5f, 4f, 3f, 2f, 1f };
float max = Float.MIN_VALUE;
for(float score : scores) {
if (score max) {
max = score;
}
}
System.out.println("最高分:" + max);
float min = Float.MAX_VALUE;
for(float score : scores) {
if (score min) {
min = score;
}
}
System.out.println("最低分:" + min);
float sum = 0;
for(float score : scores) {
sum += score;
}
float average = sum / scores.length;
System.out.println("平均分:" + average);
// 从小到大排序
Arrays.sort(scores);
System.out.println("从小到大分数排序:");
for(float score : scores) {
System.out.print(score + " ");
}
int n = 0;
for(float score : scores) {
if (score average)
n++;
}
System.out.println("\n高于平均分的有" + n + "个");
}
}
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("输入考试科数:");
int n = sc.nextInt();
// 存放每科考试的平均分
int []score = new int[n+1];
// 存放每科考试的人数
int []student = new int[n+1];
int sum = 0;
for(int i=1;i=n;i++) {
System.out.print(i+"号考试参加的人数为:");
student[i] = sc.nextInt();
for(int j=1;j=student[i];j++) {
System.out.print(j+"号学生的成绩为:");
sum+=sc.nextInt();
}
score[i] = sum/student[i];
sum=0;
}
for(int k=1;k=n;k++) {
System.out.println(k+"号考试参加的人数为"+student[k]+",平均分为:"+score[k]);
}
}
}
这是代码,其中每行main函数的要点代码我都作了注释,希望你能理解这个程序:
package example;
import java.util.Scanner;
public class example
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in); //声明Scanner对象in,用于读取输入
float[] score = new float[10]; //声明score数组,用于存储分数
float max, min; //声明变量max与min,用于存储最高分与最低分
float average = 0.0f; //声明变量average(初始化为0.0),用于存储平均值
System.out.println("请输入10个同学的成绩:"); //输出提示信息
for (int i = 0; i 10; i++) //声明for循环,用于遍历score数组
{
score[i] = in.nextFloat(); //读取分数到score数组相应位置
}
max = score[0]; //假设最大值为score[0]
min = score[0]; //假设最小值为score[0]
average += score[0]; //average加上score[0]以便后面的平均值计算
for (int i = 1; i 10; i++) //声明for循环,用于遍历score数组
{
if (score[i] max) //如果score[i]大于max值(即找到更大的值)
{
max = score[i]; //重新赋值给max
}
else if (score[i] min) //如果score[i]小于min值(即找到更小的值)
{
min = score[i]; //重新赋值给min
}
average += score[i]; //average加上score[0]以便后面的平均值计算
}
average /= 10.0; //计算平均分
System.out.print("平均分:" + average + " 最高分:" + max + " 最低分:" + min); //输出结果
in.close();//关闭in流
}
}
希望能帮到您,有什么不懂的可以再问我。
可以自定义人数,你还没学到面向对象吧,那就给个面向过程的
import java.util.Scanner;
public class StudentResult{
public static void main(String[] args){
Scanner x=new Scanner(System.in);
System.out.print("请输入学生的人数:");
int rs=x.nextInt();//输入学生人数,rs=学生数量
System.out.print("请输入课程数目:");
int sm=x.nextInt();//输入有几门课,sm=课程数目
String kc[]=new String[sm];//数组用来装各个课程名字
String xs[]=new String[rs];//数组用来装每个学生姓名
int fs[][]=new int[rs][sm];//数组用来装每个学生每门分数
for(int i=0;ikc.length;i++){
System.out.print("请定义第"+(i+1)+"门课程是什么:");
kc[i]=x.next();
}
for(int i=0;ixs.length;i++){
System.out.print("请输入第"+(i+1)+"个学生的姓名:");
xs[i]=x.next();
}
int zf[]=new int[rs];//每个学生总分
double pj[]=new double[rs];//每个学生平均分
String all[]=new String[rs];
for(int i=0;irs;i++){//i代表人名字
String cj="";
for(int j=0;jsm;j++){//j代表课程名字
System.out.print("请输入第"+(xs[i])+(kc[j])+"的成绩");
fs[i][j]=x.nextInt();
zf[i]=zf[i]+fs[i][j];
cj=cj+fs[i][j]+"\t";}
pj[i]=(double)zf[i]/sm;
all[i]=xs[i]+"\t"+cj+zf[i]+"\t"+pj[i];
}
for(int j=0;jxs.length-1;j++){
for(int i=0;ixs.length-1;i++){
if(zf[i]zf[i+1]){
int c=zf[i]; String d=all[i];
zf[i]=zf[i+1]; all[i]=all[i+1];
zf[i+1]=zf[i]; all[i+1]=d;}
}
}
System.out.print("学生\t");
for(int i=0;ism;i++){
System.out.print(kc[i]+"\t");}
System.out.print("总分\t平均分\t排行榜\t\n");
for(int i=0;ixs.length;i++){
System.out.println(all[i]+"\t第"+(i+1)+"名");}
}
}