想问问代码什么地方有问题一直输出不出来
来源: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的格式提供,这样老师可以完整的复制同学的代码,确保不会出现偏差。

祝学习愉快!
相似问题