关于数组的一些题目

package cn.kgc.kgc67;

import java.util.Scanner;

public class Demo05 {
public static void main(String[] args) {
/*
int[] array = new int[50];
for (int i = 0; i < array.length; i++) {
array[i] = 2 * i + 2;
}
//计算1-100之间的偶数
for (int a : array) {
System.out.println(a);
}
/
//计算1-100之间的奇数
/

int[] array = new int[50];
for(int i=0;i<array.length;i++){
array[i]=2*i+1;
}
for(int a : array){
System.out.println(a);
}
*/

//1.给定两个数组a{1,2,3,4} b{5,6,7,8}将两个数组内的元素对应位置互换
/*
int[] a ={1,2,3,4};
int[] b ={5,6,7,8,9,0};
//第一种方式
int[] c=a;
a=b;
b=c;
for(int i:a){
System.out.print(i);
}
System.out.println();
for(int i:b){
System.out.print(i);
}
*/
/*第二种方式,数组内长度一致
for(int i=0;i<a.length;i++){
int x = a[i];
a[i]=b[i];
b[i]=x;
}
for(int j:a){
System.out.print(j);
}
System.out.println();
for(int j:b){
System.out.print(j);
}
/
//2.给定一个数组a{1,2,3,4,5,6}将这个数组中的元素头尾对应互换位置
/

int[] a = {1,2,3,4,5,6};
for(int i=0;i<a.length/2;i++){
int x=a[i];
a[i]=a[(a.length-1)-i];
a[(a.length-1)-i]=x;
}
for(int i:a){
System.out.print(i);
}
/
//3.给定一个数组a{1,2,3,4,5,6}计算数组所有元素的平均值
/

int[] a={1,2,3,4,5,6,};
double sum=0;
for(int i:a){
System.out.println(i);
sum+=i;
}
System.out.println(“平均值是:”+sum/a.length);
/
//4.给定一个数组a{1,3,5,7,9,0,2,4,6,8}找寻数组中最大值和最小值
/

int[] a={1,3,5,7,9,0,2,4,6,8};
int min = a[0];
int max = a[0];
for(int i=1;i<a.length;i++){
if(a[i]<min){
min = a[i];
}
if(a[i]>max){
max=a[i];
}
}
System.out.println(“数组中的最小值是:”+min);
System.out.println(“数组中的最大值是:”+max);
*/

//5.给定两个数组a{1,2,3} b{4,5}合并两个数组(创建一个新的数组长度为5)
/*
int[] a ={1,2,3,};
int[] b={4,5};
int[] c=new int[a.length+b.length];
//第一种方法用if
for(int i=0;i<c.length;i++){
if(i<a.length){
c[i]=a[i];
}else{
c[i]=b[i-a.length];
}
}
for(int j:c){
System.out.println(j);
}
*/

	/*第二种方法
	for(int i=0;i<a.length;i++){
		c[i]=a[i];    //{1,2,3,0,0,}
	}
	for(int i=0;i<b.length;i++){
		c[a.length+i]=b[i];
	}
	for(int j:c){
		System.out.println(j);
	}
	*/

//6.给定一个数组a{1,2,3,9,4,5}按照数组中最大位置 将数组拆分成两个{1,2,3} {4,5}
/*
int[] a={1,2,3,9,4,5};
int max=a[0];//最大值
int index=0; //记录最大值的位置
for(int i=1;i<a.length;i++){
if(a[i]>max){
max=a[i];
index=i;
}
System.out.println(“第”+index+“个数是最大的”+max);
}
int[] newa = new int[index];
int[] newb = new int[a.length-1-index];
for(int i=0;i<index;i++){
newa[i] = a[i];
}
for(int j:newa){
System.out.print(j);
}
System.out.println("-----------------");
for(int i=0;i<a.length-1-index;i++){
newb[i] = a[(index+1)+i];
}
for(int j:newb){
System.out.print(j);
}
/
//7.给定一个数组a{1,2,3,0,0,4,5,0,6,0,7}去掉数组中的0元素(创建一个新的 数组,短的 非0元素挑出来)
/

int[] a = new int[]{1,2,3,0,0,4,5,0,6,0,7};
int count=0;
for(int i=0;i<a.length;i++){
if(a[i]!=0){
count++;
}
}
System.out.println(“原数组非零元素的个数:”+count);
int[] newa =new int[count];
int index = 0;
for(int i=0;i<a.length;i++){
if(a[i]!=0){
newa[index] =a[i];
index++;
}
}
for(int i=0;i<count;i++){
System.out.print(newa[i]);
}
/
//8.创建一个数组,存储2-100之间的素数(质数)
//方式一
/

int[] primeNumber = new int[50];
int index=0; //记录素数索引变化 同时记录素数的个数
for(int i=2;i<=100;i++){
boolean x = false;
for(int j=2;j<=i/2;j++){
if(i%j==0){
//System.out.println(i+“不是素数”);
x = true;
break;
}
}
if(!x){
//System.out.println(i+“是素数”);
primeNumber[index]=i;
index++;
}
}
int[] array = new int[index];
for(int i=0;i<array.length;i++){
array[i]=primeNumber[i];
}
for(int v: array){
System.out.println(v);
}
*/

	/*方式二
	int count =0;
	for(int i=2;i<=100;i++){
		boolean x=false;  //标识   用来记录最初的状态
		for(int j=2;j<=i/2;j++){
			if(i%j==0){
				//System.out.println(i+"不是素数");
				x=true;  //状态改变  所以不是素数
				break;
			}
		}
			if(!x){   //x==false 可以换成   !x  结果都是true
				//System.out.println(i+"是素数");
				count++;
			}
	}
	System.out.println("素数的个数是"+count);
	int[] primeNumber = new int[count];
	int index=0;
	for(int i=2;i<=100;i++){
		boolean a=false;
		for(int j=2;j<=i/2;j++){
			if(i%j==0){
				//System.out.println(i+"不是素数");
				a = true;
				break;
			}
		}
		if(!a){
			//System.out.println(i+"是素数");
			primeNumber[index]=i;
			index++;
		}
	}
	for(int i:primeNumber){
		System.out.println(i);
	}
	*/

//9.数组元素的排序(冒泡、快速、选择、希尔。。。。。)
//方式一:冒泡法 降序---->找最大值 升序—>从最低端向上找最小值
/*
* int[] array ={5,2,3,1,4};
* 升序{1,2,3,4,5}本质元素位置互换 交换位置的条件
int[] array ={5,2,3,1,4};
for(int i=1;i<5;i++){//控制比较轮次 每一轮冒出一个最小值
for(int j=4;j>=i;j–){ //从数组低端一直比到顶端 4次 j>=1可以换成j>=i
if(array[j]<array[j-1]){
int x = array[j];
array[j]=array[j-1];
array[j-1]=x;
}
}
}
for(int v:array){
System.out.print(v);
}
*/
//10.用户的登录认证(用数组当做小数据库 存值 用户验证)

	String[] useBox ={"张三","李四","王二"};
	int[] passWorldBox={123,666,8888};
	
	Scanner input = new Scanner(System.in);
	System.out.print("请输入用户名:");
	String use = input.nextLine();
	System.out.print("请输入密码:");
	int passWorld = input.nextInt();
	boolean b = false;
	//方式一
	/*
	for(int i=0;i<useBox.length;i++){
		if(useBox[i].equals(use)){
			if(passWorldBox[i]==passWorld){
				System.out.println("登录成功!");
			}else{
				System.out.println("密码错误,请重新输入!");
			}
			b = true;
			break;
		}
	}
	*/
	//方式二   改良后的
	for(int i=0;i<useBox.length;i++){
		if(useBox[i].equals(use)){
			if(passWorldBox[i]==passWorld){
				System.out.println("登录成功!");
				b = true;
			}
			break;
		}
	}
	if(!b){
		System.out.println("用户名不存在或密码错误!");
	}
	
	
}

}

11.设计一个方法 用来寻找数组中的极值(最大值或最小值)
/*
public int change(int[] x,boolean flag){ //flag=true是最大值 反之最小值
int temp=x[0];
for(int i=1;i<x.length;i++){
if(flagtrue){
if(x[i]>temp){
temp=x[i];
}
}else{
if(x[i]<temp){
temp=x[i];
}
}
}
return temp;
}
*/
12.设计一个方法 用来找寻给定的元素是否在数组中存在(Scanner输入)
public void change(int[] x,int a){
boolean b=false;
for(int i=0;i<x.length;i++){
if(a
x[i]){
System.out.println(“此数在数组中存在!”);
b=true;
break;
}
}
if(!b){
System.out.println(“数组中不存在此数!”);
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值