Java 显示特定百分比上的值数

Java 显示特定百分比上的值数,java,arrays,Java,Arrays,我需要使用一个二维数组编写一个Java程序,该数组存储8个科目中40名学生取得的分数,找到平均值,并找到获得区分的次数(分数超过70%)。 除最后一项要求外,该程序运行良好。现在,如果一个或多个分数超过70%(因此结果总是8),它将计算所有分数。 我想我对如何计算70%以上的分数感到困惑。示例代码很好,但请尝试解释我做错了什么。。。 谢谢!:) import java.util.Scanner; 公共类数据库{ 公共静态void main(字符串[]args){ //变数 双倍分数=0,平均值=

我需要使用一个二维数组编写一个Java程序,该数组存储8个科目中40名学生取得的分数,找到平均值,并找到获得区分的次数(分数超过70%)。 除最后一项要求外,该程序运行良好。现在,如果一个或多个分数超过70%(因此结果总是8),它将计算所有分数。 我想我对如何计算70%以上的分数感到困惑。示例代码很好,但请尝试解释我做错了什么。。。 谢谢!:)

import java.util.Scanner;
公共类数据库{
公共静态void main(字符串[]args){
//变数
双倍分数=0,平均值=0,总和=0,计数器=0,成绩=0,百分比=0,相对百分比=0;
double[]marksTable=新的double[40][8];
//新的扫描对象
扫描仪fromKeyboard=新扫描仪(System.in);
对于(int studentNo=0;studentNo<40;studentNo++){
System.out.println(“为学生编号输入分数”+学生编号);
总和=0;
计数器=0;
for(int moduleNo=0;moduleNo<8;moduleNo++){
System.out.println(“为学生“+studentNo+”标记为模块号“+moduleNo+”:”);
//将值读入变量标记
mark=fromKeyboard.nextDouble();
//将标记写入数组
marksTable[studentNo][moduleNo]=mark;
//计算
总和=总和+分数;
计数器=计数器+1;
}
百分比=分数;
平均值=总和/计数器;
反百分比=计数器;
//显示阵列
for(int moduleNo=0;moduleNo<8;moduleNo++){
System.out.println(“学生的平均数”+studentNo+”模块的平均数“+moduleNo+”为:“+Average”);
打破
}
如果(百分比>=70){
System.out.println(“该学生获得的高分为:“+反百分比”);
}
如果(百分比<70){
System.out.println(“未获得高分”);
}
}
}
}
试试这个:

import java.util.Scanner;
public class db
{
    public static void main (String []args)
    {
    //Variables
    double mark=0, average=0, sum=0, counter=0, achievement=0, percentage=0, counterpercentage=0;

    double[][] marksTable = new double[40][8];
    //New Scanner object
    Scanner fromKeyboard=new Scanner (System.in);

for (int studentNo = 0; studentNo < 40; studentNo++)
{
     System.out.println("Enter marks for student no" +studentNo);
     sum =0 ;
     counter = 0;

for (int moduleNo = 0; moduleNo < 8; moduleNo++)
{
     System.out.println("Mark for student "+studentNo+" for module no      "+moduleNo+":");
     //Read value into variable mark
     mark = fromKeyboard.nextDouble();
     // Write mark into array
     marksTable[studentNo][moduleNo] = mark;
     //Calculations
     sum=sum+mark;
     counter=counter+1;
     if(mark >= 70) {  //***Changed***//
       counterpercentage++;
     }
}
average=sum/counter;
//Display array
for (int moduleNo = 0; moduleNo < 8; moduleNo++)
{
      System.out.println("Average for student "+studentNo+" for module no "+moduleNo+" is: "+average);
     break;
}
    if (counterpercentage >=0)  //***Changed***//
    {
        System.out.println("The number of high marks achieved for this student are: "+ counterpercentage);
    }
    else
    {
        System.out.println("No high marks obtained");
    }
}
}
}
import java.util.Scanner;
公共类数据库
{
公共静态void main(字符串[]args)
{
//变数
双倍分数=0,平均值=0,总和=0,计数器=0,成绩=0,百分比=0,相对百分比=0;
double[]marksTable=新的double[40][8];
//新的扫描对象
扫描仪fromKeyboard=新扫描仪(System.in);
对于(int studentNo=0;studentNo<40;studentNo++)
{
System.out.println(“为学生编号输入分数”+学生编号);
总和=0;
计数器=0;
for(int moduleNo=0;moduleNo<8;moduleNo++)
{
System.out.println(“为学生“+studentNo+”标记为模块号“+moduleNo+”:”);
//将值读入变量标记
mark=fromKeyboard.nextDouble();
//将标记写入数组
marksTable[studentNo][moduleNo]=mark;
//计算
总和=总和+分数;
计数器=计数器+1;
如果(标记>=70){/***已更改***//
反百分比++;
}
}
平均值=总和/计数器;
//显示阵列
for(int moduleNo=0;moduleNo<8;moduleNo++)
{
System.out.println(“学生的平均数”+studentNo+”模块的平均数“+moduleNo+”为:“+Average”);
打破
}
如果(反百分比>=0)//***发生变化***//
{
System.out.println(“该学生获得的高分为:“+反百分比”);
}
其他的
{
System.out.println(“未获得高分”);
}
}
}
}

这是因为这句话:

百分比=分数

它将
mark
的值分配给百分比,我们需要做的是计算百分比,即总分数除以最大分数,例如

percentage=(总和/(100.0*marksTable[studentNo].length))*100//(假设eah模块的最大分数为100)

import java.util.Scanner;
public class db
{
    public static void main (String []args)
    {
    //Variables
    double mark=0, average=0, sum=0, counter=0, achievement=0, percentage=0, counterpercentage=0;

    double[][] marksTable = new double[40][8];
    //New Scanner object
    Scanner fromKeyboard=new Scanner (System.in);

for (int studentNo = 0; studentNo < 40; studentNo++)
{
     System.out.println("Enter marks for student no" +studentNo);
     sum =0 ;
     counter = 0;

for (int moduleNo = 0; moduleNo < 8; moduleNo++)
{
     System.out.println("Mark for student "+studentNo+" for module no      "+moduleNo+":");
     //Read value into variable mark
     mark = fromKeyboard.nextDouble();
     // Write mark into array
     marksTable[studentNo][moduleNo] = mark;
     //Calculations
     sum=sum+mark;
     counter=counter+1;
     if(mark >= 70) {  //***Changed***//
       counterpercentage++;
     }
}
average=sum/counter;
//Display array
for (int moduleNo = 0; moduleNo < 8; moduleNo++)
{
      System.out.println("Average for student "+studentNo+" for module no "+moduleNo+" is: "+average);
     break;
}
    if (counterpercentage >=0)  //***Changed***//
    {
        System.out.println("The number of high marks achieved for this student are: "+ counterpercentage);
    }
    else
    {
        System.out.println("No high marks obtained");
    }
}
}
}