代码输出结果和项目需求不符想问问为什么输出结果有问题
package Aryyyre;
import java.util.Scanner;
public class MathArray {
/**
* 显示菜单
*/
public void displayMenu() {
System.out.println("*********************************************");
System.out.println(" 1--初始化数学成绩");
System.out.println(" 2--求成绩的平均值");
System.out.println(" 3--统计成绩大于85分的人数");
System.out.println(" 4--修改指定位置处的成绩");
System.out.println(" 5--打印输出所以成绩");
System.out.println(" 0--退出");
}
/**
* 初始化数学成绩
*
* @return
*/
public float[] intScore() {
System.out.println("请输入要存储的数据");
Scanner st = new Scanner(System.in);
int a = st.nextInt();
float[] f = new float[a];
for (int i = 0; i < f.length; i++) {
System.out.println("请输入第" + (i + 1) + "个数学成绩");
try {
f[i] = st.nextFloat();
} catch (java.util.InputMismatchException E) {
System.out.println("你输入的数字有误");
st.next();
i--;
}
}
return f;
}
/**
*
* @param f为数学成绩的平均值
* @return
*/
public float average(float[] f) {
float sum = 0;
for (int i = 0; i < f.length; i++) {
sum += f[i];
}
float s = sum / f.length;
return s;
}
/**
* 定义统计成绩大于85分的人数
*
* @param f表示大于85分的人数
* @return
*/
public int count(float[] f) {
int sum = 0;
for (float n : f) {
if (n > 85) {
sum++;
}
}
return sum;
}
/**
* 修改指定位置处成绩
*
* @param f最开始的成绩
* @param index 成绩位置相当于数组下标
* @param newScore新的成绩
*/
public void update(float[] f, int index, float newScore) {
System.out.println("修改前");
System.out.println("成绩为");
for (int i = 0; i < f.length; i++) {
System.out.println(f[i] + " ");
}
for (int i = index; i < f.length - 1; i++) {
f[index] = newScore;
}
}
/**
* 打印输出所有成绩
*
* @param f为所有成绩
*/
public void displayAllScore(float[] f) {
for (int i = 0; i < f.length; i++) {
System.out.println(+f[i] + " ");
}
}
public static void main(String[] args) {
MathArray st = new MathArray();
Scanner s = new Scanner(System.in);
int input;
int index = 0;
float newScore = 0;
float [] a = null;
while (true) {
st.displayMenu();
System.out.println("请输入对应的数字进行操作");
try {
input = s.nextInt();
} catch (java.util.InputMismatchException E) {
System.out.println("你输入的数字有误");
s.next();
continue;
}
if (input == 0) {
System.out.println("退出程序");
break;
}
switch (input) {
case 1:
a=st.intScore();
break;
case 2:
if (a != null) {
float c= st.average(a);
System.out.println("数学平均成绩为" + c);
} else {
System.out.println("请为在数组中插入数据");
}
break;
case 3:
if (a != null) {
System.out.println("数学成绩大于85分的人有" + st.count(a));
} else {
System.out.println("请为在数组中插入数据");
}
break;
case 4:
if (a != null) {
System.out.println("请输入要修改的位置(从0开始)");
try {
index = s.nextInt();
} catch (java.util.InputMismatchException E) {
System.out.println("你输入的数字有误");
s.next();
}
System.out.println("请输入新数据");
try {
newScore = s.nextFloat();
} catch (java.util.InputMismatchException E) {
System.out.println("你输入的数字有误");
s.next();
}
st.update(a, index, newScore);
System.out.println("修改后");
System.out.println("成绩为");
st.displayAllScore(a);
} else {
System.out.println("请为在数组中插入数据");
}
break;
case 5:
if(a!=null) {
System.out.println("成绩为:");
st.displayAllScore(a);
}
else {
System.out.println("请为在数组中插入数据");
}
break;
default :
System.out.println("输入的数字不再程序范围内");
}
}
}
}11
收起
正在回答 回答被采纳积分+1
1回答
2023版Java工程师
- 参与学习 人
- 提交作业 8788 份
- 解答问题 9886 个
综合就业常年第一,编程排行常年霸榜,北上广深月薪过万! 不需要基础,无需脱产即可学习,只要你有梦想,想高薪! 全新升级:技术栈升级(包含VUE3.0,ES6,Git)+项目升级(前后端联调与功能升级)
了解课程


恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星