java编程,采用for循环,题目如下:

让计算机随机产生100个0到100之间的整数,每个整数代表某个学生的成绩,计算这些成绩平均值。
各位大侠帮我看看这个:
import java.util.*;
public class Test6 {
public static void main(String[] args){
Random R=new Random(101);
//int score=R.nextInt(101);这句放在不同位置,结果会不一样,这个为什么呢?

int sum=0;
for(int i=0;i<=100;i++){
//int score=R.nextInt(101);
sum=sum+score;
System.out.println("第"+(i+1)+"个同学的成绩为:"+score);
}
System.out.println("平均成绩为:"+(sum/100));
}
}

int n=100;
int sum=0;
for(int i=0;i<n;i++){
sum+=(int)(Math.random()*100);
}
System.out.println((float)sum/n);
循环了101次平均时却是只算了100次
import java.util.*;
public class Test6 {
public static void main(String[] args){
Random R=new Random(101);
int sum=0;
for(int i=0;i<100;i++){ //不能等于等于就循环101次了
int score=R.nextInt(101);
sum=sum+score;
System.out.println("第"+(i+1)+"个同学的成绩为:"+score);
}
System.out.println("平均成绩为:"+(float)(sum/100)); //j建议转型成float否则会得到一个整数,小数部分被舍弃
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-29
你的程序,你说的那一条语句如果放在上面,score就不变了,它只是随机产生了一次,在for循环里面就一直是上面随机产生的值,再没有改变。
如果放在for循环里的话,才是随机产生了100个成绩,每循环一次,随机产生一个。
还有你在随机产生成绩的时候for循环里面循环了101次,而不是100次。
其次计算平均成绩的时候应该把sum强制转换成double类型,这样比较准确。
第2个回答  2013-01-29
这个太简单了,我的是手机上,不好发给你呀!追问

代码写错了。我把接收随机数的给写在for循环之外了。所以得出的100个同学的成绩都是一样的。只要把接收随机分数的代码放到for循环里面就可以了。不过还是要谢谢你。

第3个回答  2013-01-29
路过 看看 学学
相似回答