想问问代码什么地方有问题一直输出不出来

来源:3-4 项目作业

weixin_慕先生7531528

2022-07-14 21:44:04

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;

}

}

}

}


写回答

1回答

好帮手慕小黑

2022-07-15

同学你好,同学的代码老师运行结果为可以在控制台输出,老师不清楚同学代码中哪个位置输出不出来,请同学详细描述同学的问题。

老师建议同学提供类的代码,并且按照以下方式以Java的格式提供,这样老师可以完整的复制同学的代码,确保不会出现偏差。

https://img.mukewang.com/climg/61f49f34090ea8a707790646.jpg

祝学习愉快!

0

0 学习 · 9886 问题

查看课程