- 实验名称
数组和方法
- 实验目的及要求(本次上机实验所涉及并要求掌握的知识点)
- 掌握方法的定义与调用关系,理解方法定义的优势,加深对方法的参数传递与返回型的理解,了解地推的概念及实现特点。
- 掌握一维数组、二维数组的定义存储分配及赋初值的方法,熟悉利用循环实现数组的幅值、输出及其处理编程的方法。
- 掌握基本数据类型和引用类型的方法参数传递特点。
- 实验环境(本次上机实践所使用的平台和相关软件)
多媒体微型计算机;Windows ,jdk及Eclipse。
- 实验设计
- 实验内容
- 利用随机函数产生16个随机整型给一个4*4赋值。
①输出矩阵并求。
②矩阵主对角线之和值。
③求最外一圈元素之和。
- 定义一个方法,求两个整型数的最大公约数。
- 编写一个方法,利用选择排序按从小到大的顺序实现一维数组的排序。
提示:选择排序是在每一遍的比较过程中,先确定最小元素的位置,比较完成后,再将最小元素与本遍最小值该放位置的元素进行交换。
- 实验步骤
- 程序1
package shiyan4;
public class shiyan4_1 {
public static void main(String[] args)
{
int sum=0;
int a[][]=new int[4][4];
int max=a[0][0];
for(int i=0;i<a.length;i++)
{
for(int j=0;j<a[i].length;j++)
{
a[i][j]=(int)(Math.random()*10+1);//产生1~10的随机整数,(int)表示将double类型强转成整型
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
for(int i=0;i<a.length;i++)//该循环主要计算第一行和最后一行元素的的值
{
sum+=a[0][i];
sum+=a[a.length-1][i];
}
for(int j=1;j<a.length-1;j++)//该循环主要计算中间n-2行的头尾元素的值
{
sum+=a[j][0];
sum+=a[j][a.length-1];
}//求矩阵最外一圈元素之和的普遍方法
System.out.println("最外一圈元素之和为:"+sum);
int sum1 = 0;
for(int i = 0; i < a.length; i++){
for(int j = 0; j <a[0].length; j++){
if(i == j){
sum1 += a[i][j];
}
}
}
System.out.println("矩阵对角线之和为:" + sum1);
}
}
- 程序2
package shiyan4;
import java.util.Scanner;
public class shiyan4_2 {
public static int hahaha(int x,int y){
for (int a=x;a>=1; a--) {
if (x%a==0 && y%a==0) {
return a;
}
}
return 1;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个正整数:");
int a=sc.nextInt();
System.out.println("请输入第二个正整数:");
int b=sc.nextInt();
System.out.println(a+"和"+b+"的最小公约数为:"+hahaha(a,b));
}
}
3)程序3
package shiyan4;
import java.util.Scanner;
public class shiyan4_3 {
public static void main(String[] args) {
int[] arr = new int[] { 56, 13, 16, 6, 33, 78, 89 };
selectSort(arr);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
public static void selectSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (i != minIndex) {
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
}