当前位置: 首页 > 知识库问答 >
问题:

如何在二维数组中找到总数和最高分

康赞
2023-03-14
import java.util.Scanner;    

public class Main    
{    
    public static void main (String args[])    
    {   
        Scanner Sc=new Scanner(System.in);   
        int Number,i,j,q,n;

        System.out.println(" how many student in your group ?");
        Number=Sc.nextInt();
        
        //create the Array
        String [] tab =new String [Number];
        for(n=0;n<Number;n++)
        {
            System.out.println(" Enter studnt name : "+(n + 1) );
            tab[n]=Sc.nextLine();
        }
         
        int [][] marks=new int [2][Number];
        for(j=0;j<Number;j++) 
        {
            for (i=0;i<1;i++)
            {
                System.out.println(" Enter the marks of the first semster : "+(j + 1));
                marks [i][j]=Sc.nextInt();
            }
            for (q=1;q<2;q++)
            {
                 System.out.println(" Enter the marks of the Second semseter  : "+(j + 1));
                 marks [q][j]=Sc.nextInt();
            }
        }    
    }
}

现在我要为每个学生找到总分和最高分。(一名学生的最高分是指他/她在哪一个学期获得最高分,也是指该学生的总分=第一学期+第二学期)。但我不知道我会怎么写,如果有人能帮助我,我会很感激他。

共有1个答案

颜实
2023-03-14

我花了一段时间来理解您的数据结构,我建议使用对象,比如为一个学生开设一个类。这个类包含关于标记和学期等的属性,这将使它更容易操作值和更容易理解。

变量应该是骆驼大小写,这意味着它们应该以小写字符开头,例如number应该是number

我假设标记更像是点,如果值越高,标记就越好。

int totalScore = Stream.of(marks).flatMapToInt(IntStream::of).sum();

sum()方法返回流中所有值的累计分数。

为了获得一学期的最高分:

int highestScore = Stream.of(marks[semester]).flatMapToInt(IntStream::of).max().orElseGet(0);

max()方法返回可选。如果流是空的(如果学生在该学期没有任何分数),它将返回0,因为orelseget(0)。在所有其他情况下,它返回该学期的最高值。

 类似资料:
  • 问题内容: 我正在一个项目中,我必须读取文件并将内容输入2D数组。然后,我必须对每一行,每一列和矩阵的周长求和。到目前为止,除外围功能外,我一切正常。我正在尝试为两个外部列的顶行,底行和中间创建单独的for循环。 矩阵文件如下所示: 因此,周长总计应为42。现在,我可以成功地将第一行和最后一行添加为等于22。但是,当我将列添加到总数中时,我得到32。 这是代码: 如果有人可以帮助我将第一列和最后一

  • 问题内容: 我想获取所有列的总和,但是我不断收到出站异常。这是我得到的输出: 问题答案: 您的外部for循环条件给您带来了问题。这是您的循环:- 现在,当达到该值时,您正在尝试访问。这将引发异常。 由于每个内部数组的大小都相同,因此可以 将循环更改为 :- 或者,甚至更好的是,只需事先存储一些变量。但这并没有太大的区别。 我还建议您使用更好的方法来计算列的总和。避免首先迭代行。保持迭代正常,大概是

  • 问题内容: 给定一个数组,如何找到其元素的总和?(在这种情况下,总和为。) 我认为可能有用,但是我不确定如何实现它。 问题答案: 推荐(减少默认值) Array.prototype.reduce可用于遍历数组,将当前元素值添加到先前元素值的总和中。 没有默认值 您收到TypeError 在ES6的箭头功能之前 非数字输入 如果非数字是可能的输入,您可能要处理呢? 不建议危险的评估使用 我们可以使用

  • 问题内容: 问题 : 给定 +ve 和 -ve 整数数组,我们需要在数组中找到总和接近零的一对。 例如: 问题答案: 您可以检查每一对数字并找到最小和。 java代码: 解决方案2: 对数组进行排序。 * 我们将维护两个索引,一个在开头(l=0),一个在结尾(r=n-1) 迭代直到 l < r * 计算 arr[l] + arr[r] 的总和 * 如果 abs (sum) < abs (minSu

  • 问题内容: 是否有一种简单的方法来查找二维数组中某个元素的邻居(即,元素周围的八个元素)?缺少只是以不同的组合减去和增加索引,像这样: … 等等。 问题答案: (伪代码) 当然,这几乎要花费原始硬编码解决方案的许多行,但是通过这一解决方案,您可以最大程度地扩展“邻居”(2-3个或更多单元格)

  • 我刚接触Python。当我试图将一个2维数组插入到一个3D数组中时,我得到了这样一个错误: 下面是我的代码: 目的是创建一个队列,其中的表[0]总是最新的元素(一个2D数组),而最旧的元素将弹出。 谁知道我怎么解决这个?多谢!