代码输出结果和项目需求不符想问问为什么输出结果有问题
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回答
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星