1.一维数组的定义遍历的操作

知识点:

一维数组:

在java中一维数组是一个保存一类大量数据的一个集合,一般对一维数组的访问都是用下标遍历的方式进行访问的。不能扩大容量

一维数组的创建方式:

通过创建对象的方式来创建数组(需要指定对象长度):

int a[] = new = int[10]; //需要指定长度10
int [] a,b = new int[10];//创建两个名为c、b的数组,长度分别为10

给定数组的值(不需要指定长度)

int a[] = new int[]{1,2,3,4};//不能指定数组长度
也可以不实例化数组
int a[] = {1,2,3,4};

一维数组的遍历方式,两种(for循环,for each循环)

for循环

int a[] = {1,2,3,4,5,6};//定义数组

//循环输出数组
for(int i = 0 ; i < a.length(); i++){
    System.out.printf(a[i] + " ");
}

输出结果:1 2 3 4 5 6

for each循环

int b[] = {1,2,3,4,5,6};

for(int x : b)
   {
        System.out.println(x+" ");
   }

输出结果:1 2 3 4 5 6

for each的x是临时定义遍历,表示每次循环取b数组中的值

输入类Scanner的创建及使用

Scanner包括在包java.util.*中,所以文件开头要加上import java.util.*;

实例化Scanner类

import java.util.*;

Scanner sc = new Scanner(System.in);

System.in代表创建的是系统输入的对象

使用Scanner赋值

int a = sc.nextInt();

double a = sc.nextDouble();

例题:

1.编写两个方法reverse和isPalindrome。

(1)方法reverse用于返回一个整数的反向倒置数。例如,reverse(123)返回321。

(2)方法isPalindrome判断一个整数是否是回文整数。在此方法中调用reverse方法获得该整数的反向数,如果反向数与它的顺向数一致,则这个数就是回文整数。

调用isPalindrome方法,分别判断123、7117是否是回文整数。

代码如下:

public class project1 {
	
	public static int reverse(int a){
		int b=a % 10;//用来存放逆序之后的数
		a/=10;
		while(a!=0)
		{
			
			b*=10;
			b+=a%10;
			a/=10;
		}
		return b;	
	}
	public static boolean isPalindrome(int a){
		if(a==reverse(a)) return true;
		else return false;
	}
	
	public static void main(String[] args) {
		int a[] = {123,7117};
		for(int i = 0; i <a.length;i++){
			
		
			if(isPalindrome(a[i]))	System.out.println(a[i]+"是回文数");
			else System.out.println(a[i]+"不是回文数");
		}

		
	}

}

运行结果:

java一维数组加成绩 java一维数组例题_后端

这里优化一下逆序函数,可以作为模板记一下

代码如下:

bool check(int a) {
    int b = 0;
    if(a % 10 == 0)return false;//排除尾部为0的数
    while (b < a) {
        b = b * 10 + (a % 10);
        a = a / 10;
    }
    return (b == a) || (b / 10 == a);
}

2.编写一个程序,声明一个整型的一维数组arraySearch,存有10个整数:16、44、71、82、3、25、37、98、60、59。程序首先提示用户输入一个要查找的数据,然后在数组arraySearch中查找该数据是否存在,最后输出查找结果,如存在,则输出该数在数组中的位置信息(位置从1开始计数);若不存在,则输出提示信息。

例如,输入数字3,则输出提示信息“该数是数组中的第5个数”;输入数字10,则输出提示信息“未找到该数”。

代码如下:

import java.util.*;
public class work2 {

	public static void main(String[] args) {
		int search=0;
		int mark = 0;
		int k =0;
		
		int arraySearch[]={16,44,71,82,3,25,37,98,60,59};
		System.out.println("请输入想要查找的数据:");
		Scanner sc = new Scanner(System.in);
		search = sc.nextInt();
		for(int i=0;i<arraySearch.length;i++){
			if(search==arraySearch[i]){
				mark = 1;
				k=i+1;
				break;
			}
		}
		if(mark==1) System.out.println("该数据是数组中第"+k+"个数");
		else System.out.println("未找到该数据");
	}

}

运行结果:

java一维数组加成绩 java一维数组例题_开发语言_02

3.编写一个方法,求整数矩阵中特定列的所有元素的和,使用下面的方法头:

public static int sumColumn(int[][] m, int col)

编写一个测试程序,读取3×4的矩阵,然后显示每列元素的和。

代码如下:

import java.util.*;
public class work3 {
	public static int sumColumn(int[][] m, int col){
		int sum= 0;
		for(int i =0;i<m.length;i++){
			
			for(int j =0 ;j<m[i].length;j++){
				if(col==j+1) sum+=m[i][j];
			}
		}
		return sum;
	}

	public static void main(String[] args) {
		int count = 0;
		int [][] m = new int [3][4];
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入12个数字");
		for(int i=0 ;i<m.length;i++){
			for(int j =0;j <m[i].length;j++){
				 
				m[i][j] = sc.nextInt();
				
			}

		}
		
		for(int i = 1;i<=m.length+1;i++){
			count = i;
			System.out.println("第"+count+"列的总数和为"+sumColumn(m, count));
		}
		
	}
}

 运行结果:

java一维数组加成绩 java一维数组例题_java一维数组加成绩_03