import java.util.*;
public class ceshi {
public static void main(String[] jlasgdkajs){
Scanner input=new Scanner(System.in);
System.out.print("请输入学生人数");
int ren=input.nextInt();
int renshu=0;
for(int i=1;i<=ren;i++){
System.out.print("请输入第"+i+"名学生的成绩");
int score=input.nextInt();
if(score>80){
renshu++;
}else{
continue;
}
}
System.out.println("成绩大于80分的有"+renshu+"人");
System.out.println("占所有人数的"+(renshu/ren));
}
}以上是小弟打的代码,就是最后求人数所占比例的时候不是显示的比例,忘记应该怎么弄了,假如我输入的是7人,大于80分的有4人,那应该输出57.142857......是double类型的,请教

解决方案 »

  1.   

    renshu/ren是整除,因为两个操作数都是整数
    改成:(double)renshu/ren
      

  2.   


    System.out.println("占所有人数的" + ((double)renshu / ren));//强制转换为double
      

  3.   

    System.out.println("占所有人数的" + ((double)renshu / ren));//强制转换为double
      

  4.   

    public static void main(String[] jlasgdkajs){
    Scanner input=new Scanner(System.in);
    System.out.print("请输入学生人数");
    int ren=input.nextInt();
    int renshu=0;
    for(int i=1;i<=ren;i++){
    System.out.print("请输入第"+i+"名学生的成绩");
    int score=input.nextInt();
    if(score>80){
    renshu++;
    }else{
    continue;
    }
    }
    double bl = new Double(renshu).doubleValue()/new Double(ren).doubleValue();
    System.out.println("成绩大于80分的有"+renshu+"人");
    System.out.println("占所有人数的"+bl);
    }
      

  5.   

    System.out.println("占所有人数的"+(renshu/ren));
    你两个参数都是int的他会强转成int就是只取整数部分的
    把它改成System.out.println("占所有人数的"+(double)renshu/ren);
    就会输出double型
    要想有%比号的我把你的程序改成这样
    import java.math.BigDecimal;
    import java.math.MathContext;
    import java.math.RoundingMode;
    import java.util.*;public class ceshi {
    public static void main(String[] jlasgdkajs) {
    Scanner input = new Scanner(System.in);
    System.out.print("请输入学生人数");
    int ren = input.nextInt();
    int renshu = 0;
    for (int i = 1; i <= ren; i++) {
    System.out.print("请输入第" + i + "名学生的成绩");
    int score = input.nextInt();
    if (score > 80) {
    renshu++;
    } else {
    continue;
    }
    }
    System.out.println("成绩大于80分的有" + renshu + "人");
    double bili=todouble(renshu,ren);
    System.out.println("占所有人数的" + bili+"%");
    }
    static double todouble(int a,int b){
    MathContext m=new MathContext(4, RoundingMode.HALF_UP);
    BigDecimal bd=new BigDecimal((double)a/b, m);
    return  bd.doubleValue()*100;
    }
    }