进来看看吧~有问题

凉岑玉 2010-04-19 12:13:38
import java.util.Scanner;

public class ShuZu {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);

String[] student = new String[60];
int i=0;

int s = 0;
int k;

for (i = 0; i < 60; i++) {
int w = i + 1;
System.out.println("请输入第" + (i + 1) + "个学生的成绩:");
student[i] = scan.next();
k = Integer.parseInt(student[0]);
s += Integer.parseInt(student[i]);
;// 强行转换。
double avg = s / w;
int max = k;
int min = k;
if (max < Integer.parseInt(student[i])) {
max = Integer.parseInt(student[i]);
}
if (min > Integer.parseInt(student[i])) {
min = Integer.parseInt(student[i]);
}
System.out.println("------------------------------");
System.out.println("是否查看结果?(Y/N)");
String r = scan.next();
if (r.equals("y")) {

System.out.println("你总共输入了" + w + "个同学的成绩。" + " 平均分为:" + avg
+ "\n最高分为:" + max + "最低分为:" + min);
}
}
}

}
//输出的时候~最大值是错误的~就是说不是最大值~而且不固定的错~有时候又是对的。请高手请教
...全文
126 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
凉岑玉 2010-04-19
  • 打赏
  • 举报
回复
多谢各位的精彩回帖!小弟结贴了~!
mantoupaozi 2010-04-19
  • 打赏
  • 举报
回复
呵呵。。。详细。。。。
风起于默 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hardycheng 的回复:]
Java code


public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);

String[] student = new String[60];

……
[/Quote]
不错,思路严谨
不懂编程 2010-04-19
  • 打赏
  • 举报
回复
max和min要保证是最大最小值,然后用输入的值去比
cwjieNo1 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hardycheng 的回复:]
Java code


public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);

String[] student = new String[60];

……
[/Quote]
拿第一个作为参考,之后和第一个比较,得出结果,很好·
Ark032425 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hardycheng 的回复:]
Java code


public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);

String[] student = new String[60];

……
[/Quote]
详细
youyouzhishen 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hardycheng 的回复:]

Java code


public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);

String[] student = new String[60];

in……
[/Quote]
楼上思路很清晰,应该向拿到一地个学生的成绩,再循环输入第二个第三个学生的成绩
hardycheng 2010-04-19
  • 打赏
  • 举报
回复


public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);

String[] student = new String[60];

int sum = 0;
int max = 0;
int min = 0;
int studentsNumbers = 1;
double avg = 0.0;
// 第一个学的成绩 即使最大值,也是最小值,用来初始化最大最小值,放在for外面,可以
//避免循环体内判断if

System.out.println("请输入第 1 个学生的成绩:");
student[0] = scan.next();
max = Integer.parseInt(student[0]);
min = Integer.parseInt(student[0]);
sum += Integer.parseInt(student[0]);
avg = max / studentsNumbers;
System.out.println("是否查看结果?(Y/N)");
String isNext = scan.next();
if ("y".equals(isNext)) {

System.out.println("你总共输入了 1 个同学的成绩。" + " 平均分为:" + avg
+ "\n最高分为:" + max + "最低分为:" + min);
}
studentsNumbers = 2;

for (int i = 1; i < 60; i++ , studentsNumbers ++) {
System.out.println("请输入第" + studentsNumbers + "个学生的成绩:");
student[i] = scan.next();
int maxTemp = Integer.parseInt(student[i]);
int minTemp = Integer.parseInt(student[i]);
sum += Integer.parseInt(student[i]);
// 强行转换。
avg = sum / studentsNumbers;
if (max < maxTemp) {
max = maxTemp;
}
if (min > minTemp) {
min = minTemp;
}
System.out.println("------------------------------");
System.out.println("是否查看结果?(Y/N)");
String r = scan.next();
if (r.equals("y")) {

System.out.println("你总共输入了" + studentsNumbers + "个同学的成绩。" + " 平均分为:" + avg
+ "\n最高分为:" + max + "最低分为:" + min);
}
}
}



//



Dazzlingwinter 2010-04-19
  • 打赏
  • 举报
回复
你的max定义在了For里边,每次进来都是用Student[0]来赋值,在循环内你是取到了本次比较的最大值和最小值,但是下一次循环又重新开始了,还是student[0]来作为最大和最小,这样是不行的呀
你把max和min定义到for循环外部 就好了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧