[Java] 实验10

50011

这题考察如何定义method。method主要由

- 返回值 (return value)

- 方法名 (method name)

- 参数列表 (argument list)

- 方法体 (method body)

组成。

这题的max方法,大概是:

int max(int a, int b, int c) {
  // ...
}

60001 求平均值

注意经常出现的错误:整数除整数,结果仍为整数。

60002 求最大值及其下标

这题考察遍历数组的方法:

for (int i = 0; i < array.length; ++ i) {
  // 通过 arrray[i] 可以访问数组 array 的第 i 个元素
}

60003 逆序输出

逆序访问数组即可:

for (int i = array.length - 1; i >= 0; -- i) {
  // todo
}

60004 交换最小值和最大值

解题思路

1. 通过60002, 我们可以找到最大值及其下标。由此可以把该值 maximum 与数组元素 array[0] 交换。

2. 稍微修改程序,我们可以找到最小值及其下表。由此可以把该值 minimal 与数组末尾元素 array[array.length - 1] 交换。

3. 如何交换。大家可以参考下述这段可复用(在1, 2步骤中,都可以调用它)的代码

// 交换 array[idx1] 和 array[idx2]
static void swap(int[] array, int idx1, int idx2) {
  int temp = array[idx1];
  array[idx1] = array[idx2];
  array[idx2] = temp;
}

// 在main函数中,假如有下述数组
int[] a = new int[] {0, 1, 2, 3};
// 通过下述的swap函数,数组 a 会变成 {3, 1, 2, 0}
swap(a, 0, a.length - 1);

大致刻画解题思路的代码如下:

public static void main(String[] args) {
  // ...
  for (int ri = 0; ri < repeat; ++ ri) {
    int nums = new int[n];
    // input n numbers
    // ...
    int maxIdx = minIdx = 0;
    for (int i = 0; i < n; ++ i) {
      // Find the real maxIdx and minIdx here
    }
    swap(nums, maxIdx, 0);
    swap(nums, minIdx, nums.length - 1);
  }
}

static void swap(int[] array, int idx1, int idx2) {
  int temp = array[idx1];
  array[idx1] = array[idx2];
  array[idx2] = temp;
}

60011 矩阵运算

1. 通过下述代码可以访问矩阵中的第 i 行 第 j 列的元素:

for (int i = 0; i < n; ++ i)
  for (int j = 0; j < n; ++ j)
    // todo ...
    // 注意:如果你要在 for 中执行多条语句,那么需要加上花括号

2. 读清题意,只有同时满足下述三种情况的数字才能被加入 sum 中:

- 不在最后一行 (i != ?)

- 不在最后一列 (j != ?)

- 不在副对角线上 (i + j != ?)

时间: 2024-10-24 20:22:29

[Java] 实验10的相关文章

Java实验一

JAVA实验一 课程:移动平台应用开发实践          班级: 9217 姓名:蔡斌思               学号:20159217 成绩:             指导教师:娄嘉鹏       实验日期:2015.10.04 实验密级:         预习程度:             实验时间: 仪器组次:        必修/选修:选修       实验序号:1 实验名称:Java开发环境的熟悉 实验目的与要求: 1.使用JDK编译.运行简单的Java程序 2.使用Eclip

Java实验二实验报告:java面向对象程序设计

java实验二实验报告 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计模式 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2.完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等).解决办法(空洞的方法如“查网络”.“问

[Java] 实验5參考代码

实验4月3日晚截止,实验截止后将在此给出完整的參考代码. 1. 怎样使用以下的代码模板: 1.1 在eclipse中创建相应名称的类     1.2 将代码拷贝到类文件中 1.3 在//todo凝视中输入你用于解题的代码. 1.4 样例:參考第一题"显示两级名字".大家就能够这么做 1.4.1 在eclipse中创建类.名字叫做PassOrFail 1.4.2 将以下的代码拷贝到.java文件里.并删除//todo凝视,開始在while循环里写代码 (推断成绩是否大于60, 输出等)

Java实验报告五

课程:Java程序设计实验   班级:1353  姓名:符运锦  学号:20135323 成绩:                           指导教师:娄嘉鹏      实验日期:2015.6.9 实验密级:无            预习程度:                   实验时间:15:30~18:00 仪器组次:  23                    必修/选修: 选修                  实验序号:5 实验名称:TCP传输及加解密 实验内容: 1.运行

20135231 JAVA实验报告三:敏捷开发与XP实践

---恢复内容开始--- JAVA实验报告三:敏捷开发与XP实践 20135231 何佳 实验内容 1. XP基础 2. XP核心实践 3. 相关工具 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2.完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等).解决办法(空洞的方法如“查网络”.“问同学”.“看书”等一律得0分)以及分析(从中

Java实验报告二

北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计实验   班级:1353  姓名:符运锦  学号:20135323 成绩:                           指导教师:娄嘉鹏      实验日期:2015.5.8 实验密级:无            预习程度:                   实验时间:15:30~18:00 仪器组次:  23                    必修/选修: 选修              

Java实验--基于Swing的简单的歌曲信息管理系统(四)

原创不易,转载请注明出处. 上一篇<Java实验--基于Swing的简单的歌曲信息管理系统(三) >中,我们绘制了登录.注册和管理员主界面,本片主要讲解歌曲管理界面.第一次涉及到对表格的操作,参见的教材上的代码,具体代码如下: package test.swing; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.

Java实验报告(一)

Java实验报告(一) 实验过程 1. 打印输出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个"水仙花数". 实验源码: import java.lang.Math; class Narcissus{ public static void main(String[] args){ int num1,num2,num3; int count = 0; for(int i = 100;i <

第二次Java实验报告

Java实验报告 班级 计科二班 学号 20188437 姓名 何磊 完成时间 2019/9/12 评分等级 实验二 Java简单类与对象 实验目的 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性: 理解static修饰付对类.类成员变量及类方法的影响. 实验内容 写一个名为Rectangle的类表示矩形.其属性包括宽width.高height和颜色color,width和heigh