/*3.使用二维数组存储班上五个学生三门功课的考试成绩,要求输出每一个学生的总分、平均分、最高分、最低分。

package HomeWork;
import java.util.Arrays;
import java.util.Scanner;
/*3.使用二维数组存储班上五个学生三门功课的考试成绩,要求输出每一个学生的总分、平均分、最高分、最低分。


要求:
①学生个数动态获取。
②学生考试的门数动态获取。
③每个学生各门功课考试的成绩动态获取。
【动态获取是指由键盘输入】
 * */
public class Test_03 {
//英语 数学 语文  ,分数 , 小翌[0] 小洁[1] 小娴[2] 小绘[3] 小依[4] 
public static void main(String[] args) {//每个数组对应的是 名字(科目分数)
Scanner sc=new Scanner(System.in);//创建键盘录入的对象
System.out.println("请输入学生个数:");
int xs = sc.nextInt(); 
System.out.println("请输入科目数量:");
int km = sc.nextInt();//存储录入的数据
int[][] arr=new int[xs][km];//创建数组
for(int i=0;i<xs;i++){
for(int j=0;j<km;j++){
System.out.println("请输入该班级:第"+(i+1)+"个学生;第"+(j+1)+"门功课的成绩:");//+1是避免显示成0
arr[i][j]=sc.nextInt();//将键盘录入的数据存到数组中
}System.out.println(Arrays.toString(arr));
}

Sum(arr);
average(arr);
getMax(arr);
getMin(arr);

}

public static void Sum(int[][] arr){//求和
int sum =0;
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
sum =+ arr[i][j];// sum = sum + arr[i][j];
}
System.out.println("您输入的第"+(i+1)+"个学生的总分sum="+sum);
}
}


public static void average(int[][] arr){//求平均分
/*sum的初始化必须为0并且位置只能在这,内层循环结每束后一次返回
一个学生的各科分数的和*/
int sum =0;
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
sum =+ arr[i][j];
}
int average=sum/3;
System.out.println("您输入的第"+(i+1)+"个学生的平均分average="+average);
}
}

public static void getMax(int[][] arr){//求最大值
for(int i=0;i<arr.length;i++){
int max =arr[i][0];
for(int j=1;j<arr[i].length;j++){
if(arr[i][j]>max){
max=arr[i][j];
}
}
System.out.println("您输入的第"+(i+1)+"个学生的最高分max="+max);
}
}

public static void getMin(int[][] arr){//求最小值
for(int i=0;i<arr.length;i++){//arr[0]
int min = arr [i][0];
for(int j=1;j<arr[i].length;j++){//arr[0][0]
if(arr[i][j]<min){
min = arr[i][j] ;
}
}
System.out.println("您输入的第"+(i+1)+"个学生的最低分min="+min);
}
}

}
  • 12
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: */import java.util.Arrays; public class GradeCalculator { public static void main(String[] args) { // 定义二维数组A int[][] A = { { 80, 75, 90 }, { 85, 90, 85 }, { 95, 80, 75 }, { 75, 85, 80 }, { 90, 75, 85 } }; // 计算每个学生平均成绩输出 for (int i = 0; i < A.length; i++) { int sum = Arrays.stream(A[i]).sum(); double avg = (double) sum / A[i].length; System.out.printf("第%d个学生平均成绩是:%.2f\n", i + 1, avg); } } } 答案解析: 这道题目主要考查的是数组的基本操作和算法的实现。我们可以先定义一个二维数组A,用于存放5个学生的3门成绩。然后使用一个for循环遍历数组,分别计算每个学生成绩总和和平均成绩,并使用printf方法输出结果。在计算平均成绩时,需要注意将成绩总和转换为double类型,以保留小数部分。 ### 回答2: 实现平均成绩计算功能的关键算法可以通过以下步骤进行: 1. 定义一个二维数组A,用于存放5个学生成绩数组的维度为5行3列,表示5个学生和3门科目。 2. 输入并初始化二维数组A,将每个学生成绩存入数组中。 3. 遍历数组A,计算每个学生平均成绩。首先使用一个循环来遍历每个学生成绩,再在内部使用一个循环来遍历每门课程成绩,将每门课程成绩累加得到该生的总成绩。 4. 计算平均成绩时,将该生的总成绩除以课程数量,即可得到平均成绩。 5. 将每个学生平均成绩输出。 以下是一个示例程序: ``` #include <iostream> using namespace std; int main() { // 定义一个二维数组A,用于存放5个学生的3门成绩 int A[5][3]; // 输入每个学生成绩 for (int i = 0; i < 5; i++) { cout << "请输入第" << i + 1 << "个学生的3门成绩:" << endl; for (int j = 0; j < 3; j++) { cin >> A[i][j]; } } // 计算每个学生平均成绩输出 for (int i = 0; i < 5; i++) { int sum = 0; for (int j = 0; j < 3; j++) { sum += A[i][j]; } float average = (float)sum / 3; cout << "第" << i + 1 << "个学生平均成绩为:" << average << endl; } return 0; } ``` 以上程序通过输入每个学生成绩,并经过遍历计算得出每个学生平均成绩,并将其输出。 ### 回答3: 实现平均成绩计算功能的关键算法如下: 1. 定义一个二维数组A,用于存放5个学生的3门成绩数组A的行表示学生,列表示科目。 示例定义:A = [[科目1成绩1, 科目2成绩1, 科目3成绩1], [科目1成绩2, 科目2成绩2, 科目3成绩2], [科目1成绩3, 科目2成绩3, 科目3成绩3], [科目1成绩4, 科目2成绩4, 科目3成绩4], [科目1成绩5, 科目2成绩5, 科目3成绩5]] 2. 遍历二维数组A,计算每个学生平均成绩。 2.1 初始化一个空列表averages,用于存放每个学生平均成绩。 2.2 对于每个学生,遍历他们的成绩并求和。 2.3 将每个学生的总成绩除以科目数量(这里是3),即可获得每个学生平均成绩。 2.4 将每个学生平均成绩添加到averages列表中。 3. 输出每个学生平均成绩。 3.1 遍历averages列表,输出每个学生平均成绩。 示例代码如下: ```python A = [[89, 78, 92], [95, 87, 75], [91, 82, 89], [78, 81, 86], [82, 92, 80]] averages = [] for i in range(len(A)): total_score = sum(A[i]) average = total_score / len(A[i]) averages.append(average) for i in range(len(averages)): print("学生{}的平均成绩为:{}".format(i+1, averages[i])) ``` 输出结果如下: ``` 学生1的平均成绩为:86.33333333333333 学生2的平均成绩为:85.66666666666667 学生3的平均成绩为:87.33333333333333 学生4的平均成绩为:81.66666666666667 学生5的平均成绩为:84.66666666666667 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值