java - 如何计算每个科目的平均值
问题描述
如何计算每个科目的平均值和 3 个科目的总值平均值和百分比平均值并将它们打印在表格下方。
我试图通过将每个数组除以学生数变量“DB”来找到平均值,但它给出了错误
“对于参数类型 int、int[][],运算符 / 未定义”。
有什么方法可以让我得到一个完美的输出表结构。
我\t
用来在列之间创建空间,但它们没有正确对齐。
package cube;
import java.io.*;
import java.util.Scanner;
public class ReportCard
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int DB[][],nos=0;
String S="";
Scanner s = new Scanner(System.in);
void Input()throws Exception
{
System.out.print("Enter The Number Of Students : ");
nos=Integer.parseInt(br.readLine());
DB=new int[nos+1][20];
String arrayOfNames[] = new String[nos];
for (int i = 0; i < arrayOfNames.length; i++) {
System.out.print("Enter the name of student:");
arrayOfNames[i] = s.nextLine();
System.out.print("\nEnter "+arrayOfNames[i]+"'s English Score : ");
DB[i][0]=Integer.parseInt(br.readLine());
System.out.print("Enter "+arrayOfNames[i]+"'s Science Score : ");
DB[i][1]=Integer.parseInt(br.readLine());
System.out.print("Enter "+arrayOfNames[i]+"'s Maths Score : ");
DB[i][2]=Integer.parseInt(br.readLine());
DB[i][3]=(int)(DB[i][0]+DB[i][1]+DB[i][2]);
DB[i][4]=((int)((DB[i][3])*100)/300);
DB[i][5]=(int)(DB[i][0])/DB;
Padd("Average\t",DB[i][5]);
if ((DB[i][0])< 50 | (DB[i][1])< 50 | (DB[i][2]) < 50) {
System.out.print("Fail");
}
else {
System.out.print("Pass");
}
}
System.out.println("\n\n\nStudent Name. English Science \t Maths Total Percentage Pass or Fail \n");
for(int i=0;i<nos;i++)
{
System.out.print(""+arrayOfNames[i]+"\t\t");Padd("English \t ",DB[i][0]);Padd("Science \t ",DB[i][1]);
Padd("Maths \t ",DB[i][2]);Padd("Total \t",DB[i][3]);Padd("Percentage\t",DB[i][4]);
if ((DB[i][0])< 50 | (DB[i][1])< 50 | (DB[i][2]) < 50) {
System.out.print("\t\tFail");
}
else {
System.out.print("\t\tPass");
}
System.out.println(S);
S="";
}
}
void Padd(String S,int n)
{
int N=n,Pad=0,size=S.length();
while(n!=0)
{
n/=10;
Pad++;
}
System.out.print(" "+N);
for(int i=0;i<size-Pad-4;i++)
System.out.print(" ");
}
public static void main(String args[])throws Exception
{
ReportCard obj=new ReportCard();
obj.Input();
}
}
解决方案
当您对数组对象本身进行算术运算时,您会收到此错误。
java中的数组是一种数据结构,用于保存值/对象的顺序集合。您可以通过使用索引访问数组元素来对它们进行算术运算。
如下所示: int result = array[i][0] / 3;
但是在您的代码中,您将整个数组作为表达式中的操作数传递。
DB[i][5]=(int)(DB[i][0])/DB;
上面的代码行导致了这个问题。而不是提供任何整个数据库数组,而是根据您的要求提供相应的索引
我希望这回答了你的问题
推荐阅读
- php - WooCommerce 模板文件的奇怪问题 - 无法从代码中删除 DIV
- vue.js - 如何使用 Cypress 端到端快照测试来测试 Vue 单文件组件
- html - 将 CSS 类合并到一个自定义类中
- r - R:distHaversine 函数未提供预期结果
- puppeteer - 需要在目录中显示页码
- r - 在 R 中选择每列的最高值
- python - 如何找到数据集中所有点到第 k 个最近邻的距离
- php - php从输入插入mysql变量值
- javascript - 如何在 Azure 构建管道中打包 JS 应用程序并保存在单独的 C# 存储库中
- ios - 将自定义阴影添加到 TabBar 图层,同时删除阴影图像