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