数组专题——练习题:
1、请将1,9,2,5,4,8,3,6,7,10,8存入数组a,然后输出打印;
/*
*@author MingxuDeng
*@version 20202020年10月25日
note : 1、请将1,9,2,5,4,8,3,6,7,10,8存入数组a,然后输出打印;
*/
public class Demoarr01 {
public static void main(String[] args) {
int[] a= {1,9,2,5,4,8,3,6,7,10,8};
for(int i =0;i<a.length;i++) {
System.out.print(a[i]+" ");//1 9 2 5 4 8 3 6 7 10 8
}
}
}
2、将数组a中的数字进行从小到大和从大到小排序输出,分别打印;
/*
*@author MingxuDeng
*@version 20202020年10月25日
note : 2、将数组a中的数字进行从小到大和从大到小排序输出,分别打印;
*/
import java.util.Arrays;
public class Demoarr02 {
public static void main(String[] args) {
int[] a = {1,9,2,5,4,8,3,6,7,10,8};
Arrays.sort(a);//集合自带的排序方法,把数组a作为参数,可以得到排序后的数组a
for(int i =0;i<a.length;i++) {
System.out.print(a[i]+" ");//1 2 3 4 5 6 7 8 8 9 10
}
}
}
3、查找数组a中的最大值、最小值,并打印输出它们的下标位置;
/*
*@author MingxuDeng
*@version 20202020年10月25日
note : 3、查找数组a中的最大值、最小值,并打印输出它们的下标位置;
*/
public class DemoArr03 {
public static void main(String[] args) {
int[] a = {1,9,2,5,4,8,3,6,7,10,8};
int max,min,fa=0,fi=0;
max=a[0];min=a[0];
for(int i=0;i<a.length;i++) {
if(a[i]>=max) {
max=a[i];
fa=i;
}else if(a[i]<=min) {
min=a[i];
fi=i;
}
}
System.out.println(" max: "+max+" 其下标为: "+fa);// max: 10 其下标为: 9
System.out.println(" min: "+min+" 其下标为: "+fi);// min: 1 其下标为: 0
}
}
4、定义一个数组来存储12个学生的成绩{72,89,65,58,87,91,53,82,71,93,76,68},计算并输出学生的平均成绩。(保留小数点后两位。)
/*
*@author MingxuDeng
*@version 20202020年10月25日
note : 4、定义一个数组来存储12个学生的成绩{72,89,65,58,87,91,53,82,71,93,76,68},计算并输出学生的平均成绩。
*/
public class DemoArr04 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int[]b= {72,89,65,58,87,91,53,82,71,93,76,68};
int sum=0;
for (int i = 0; i < b.length; i++) {
sum+=b[i];
}
System.out.printf("%.2f",(double)sum/b.length);//75.42
}
}
5、统计数组{20,45,78,34,16,3,99,56}中大于50的有多少个、小于50的有多少个并打印输出。
/*
*@author MingxuDeng
*@version 20202020年10月25日
note : 5、统计数组{20,45,78,34,16,3,99,56}中大于50的有多少个、小于50的有多少个并打印输出。
*/
public class DemoArr05 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int[]c={20,45,78,34,16,3,99,56};
int DA=0,XI=0;
for(int i=0;i<c.length;i++) {
if(c[i]>50) {
DA++;
}else if(c[i]<50) {
XI++;
}
}
System.out.println("数组{20,45,78,34,16,3,99,56}中,大于50的数有:"+DA+"个,小于50的数有:"+XI+"个。");//数组{20,45,78,34,16,3,99,56}中,大于50的数有:3个,小于50的数有:5个。
}
}
6、在数组{4,5,6,2,3,1,9,8,7,10,12,14,15}中查找元素(先打印输出所有元素,输入一个数,如果找到了则打印输出其位置,没有找到则提示没有找到)
/*
*@author MingxuDeng
*@version 20202020年10月25日
note :
6、在数组{4,5,6,2,3,1,9,8,7,10,12,14,15}中查找元素
(先打印输出所有元素,输入一个数,如果找到了则打印输出其位置,没有找到则提示没有找到)
*/
import java.util.Scanner;
public class DemoArr06 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int[]d={4,5,6,2,3,1,9,8,7,10,12,14,15};
int m=d.length;
System.out.println(" 打印输出数组:");
System.out.print(" ");
for (int i = 0; i < d.length; i++) {
System.out.print(d[i]+" ");
}
System.out.println();
System.out.println("请输入需要查询的数:");
Scanner s=new Scanner(System.in);
int n=s.nextInt();
for (int i = 0; i < d.length; i++) {
m--;
if(d[i]==n) {
System.out.println(n+"的位置是:"+i);
break;
}
}
if( m==0){
System.out.println("找不到 !");
}
//方法二
for(int i=0;i<d.length;i++) {
System.out.println(d[i]);
}
int j=0;
for(int i=0;i<d.length;i++){
if(d[i]==50) {
j=i+1;System.out.println("该数为第"+j+"个数");
}else if (i==d.length-1){
System.out.println("找不到");
}
}
}
}
7、定义一个数组来存储12个学生的成绩{72,89,65,58,87,91,53,82,71,93,76,68},统计各成绩等级(90分以上为‘A’,8089分为‘B’,7079分为‘C’,60~69分为‘D’,60分以下为E)学生人数,并将其放入到数组count中,其中:count[0]存E级的人数,count[1]存D级的人数,……,count[4]存A级的人数。
//90以上 count[4]++
//80~89 count[3]++
//70~79 count[2]++
//60~69 count[1]++
//60以下 count[0]++
/*
*@author MingxuDeng
*@version 20202020年10月25日
note :
* 7、定义一个数组来存储12个学生的成绩{72,89,65,58,87,91,53,82,71,93,76,68},
* 统计各成绩等级(90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为E)学生人数,
* 并将其放入到数组count中,
* 其中:
* count[0]存E级的人数,
* count[1]存D级的人数,
* ……,
* count[4]存A级的人数。
*
*
* //90以上 count[4]++
* //80~89 count[3]++
* //70~79 count[2]++
* //60~69 count[1]++
* //60以下 count[0]++
*/
public class DemoArr07 {
public static void main(String[] args) {
// 方法一
int[]e={72,89,65,58,87,91,53,82,71,93,76,68};
int A=0,B=0,C=0,D=0,E=0;
int[]count0=new int[e.length];
int[]count1=new int[e.length];
int[]count2=new int[e.length];
int[]count3=new int[e.length];
int[]count4=new int[e.length];
for (int i = 0; i < e.length; i++) {
int n=e[i];
if(n>=90) {
count4[A]=n;
A++;
}else if(n<90&&n>=80) {
count3[B]=n;
B++;
}else if(n<80&&n>=70) {
count2[C]=n;
C++;
}else if(n<70&&n>=60) {
count1[D]=n;
D++;
}else {
count0[E]=n;
E++;
}
}
System.out.print ("等级为A的学生人数为:"+A);
System.out.print(" count4: ");
for(int i=0;i<A;i++) {
System.out.print(count4[i]+" ");//等级为A的学生人数为:2 count4: 91 93
}System.out.println();
System.out.print ("等级为B的学生人数为:"+B);
System.out.print(" count3: ");
for(int i=0;i<B;i++) {
System.out.print( count3[i]+" ");//等级为B的学生人数为:3 count3: 89 87 82
}System.out.println();
System.out.print ("等级为C的学生人数为:"+C);
System.out.print(" count2: ");
for(int i=0;i<C;i++) {
System.out.print( count2[i]+" ");//等级为C的学生人数为:3 count2: 72 71 76
}System.out.println();
System.out.print ("等级为D的学生人数为:"+D);
System.out.print(" count1: ");
for(int i=0;i<D;i++) {
System.out.print( count1[i]+" ");//等级为D的学生人数为:2 count1: 65 68
}System.out.println();
System.out.print ("等级为E的学生人数为:"+E);
System.out.print(" count0: ");
for(int i=0;i<E;i++) {
System.out.print( count0[i]+" ");//等级为E的学生人数为:2 count0: 58 53
}
//方法二
int[] arr = {72,89,65,58,87,91,53,82,71,93,76,68};
int [] count=new int[5];
for(int i=0;i<arr.length;i++) {
if(arr[i]>=90) {count[0]++;}
else if(arr[i]>=80) {count[1]++;}
else if(arr[i]>=70) {count[2]++;}
else if(arr[i]>=60) {count[3]++;}
else if(arr[i]<60) {count[4]++;}
}
System.out.println("A等级\t"+"B等级\t"+"C等级\t"+"D等级\t"+"E等级\t");
for(int i=0;i<count.length;i++) {System.out.print(""+count[i]+"\t");}
}
}
8、从键盘输入8个整数存放在一个数组中,然后将奇数和偶数分别存入到两个不同的数组中,并按奇数、偶数交替的顺序输出这两个数组中的所有数据(先交替输出,如果奇数个数多,则再输出剩下的奇数,如果偶数个数多,则再输出剩下的偶数)。(提示与要求:(1)定义一个数组存储从键盘输入的8个整数,先判断这8个整数中奇数和偶数的个数,才能定义存储奇数和偶数的数组的长度;(2)把一个大的数组分别存放在奇数和偶数数组中并交替输出的过程定义为方法)
/*
*@author MingxuDeng
*@version 20202020年10月25日
note :
8、从键盘输入8个整数存放在一个数组中,然后将奇数和偶数分别存入到两个不同的数组中,并按奇数、偶数交替的顺序输出这两个数组中的
所有数据。(先交替输出,如果奇数个数多,则再输出剩下的奇数,如果偶数个数多,则再输出剩下的偶数)
提示与要求:
(1)定义一个数组存储从键盘输入的8个整数,先判断这8个整数中奇数和偶数的个数,才能定义存储奇数和偶数的数组的长度;
(2)把一个大的数组分别存放在奇数和偶数数组中并交替输出的过程定义为方法
*/
import java.util.Scanner;
public class DemoArr08 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner s=new Scanner(System.in);
int[]f=new int[8];
int[]JI=new int[8];int[]OU=new int[8];
int Ji=0,Ou=0;
for(int i=0;i<8;i++) {
f[i]=s.nextInt();
}
for (int i = 0; i < f.length; i++) {
if(f[i]%2==0) {
OU[Ou]=f[i];
Ou++;
}else {
JI[Ji]=f[i];
Ji++;
}
}
System.out.println("奇数的个数有:"+Ji+"个");
System.out.println("偶数的个数有:"+Ou+"个");
if(Ji>Ou) {
for (int i = 0; i <Ou; i++) {
System.out.print(JI[i]+" "+OU[i]+" ");
}
for(int i=Ou;i<Ji;i++) {
System.out.print(" "+JI[i]+" ");
}
}else {
for (int i = 0; i <Ji; i++) {
System.out.print(OU[i]+" "+JI[i]+" ");
}
for(int i=Ji;i<Ou;i++) {
System.out.print(" "+OU[i]+" ");
}
}
}
}
参考代码一:
package com.day4.array;
public class Array {
public static void main(String[] args) {
int [] a=new int []{1,9,2,5,4,8,3,6,7,10,8};
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+",");
}
}
}
参考代码二:
package com.day4.array;
public class Array1 {
public static void main(String[] args) {
int [] a=new int []{1,9,2,5,4,8,3,6,7,10,8};
int[] result = minToMaxSort(a);
for (int i = 0; i < result.length; i++) {
System.out.print(result[i]+",");
}
//换行打印
System.out.println();
int[] result1 = maxToMinSort(a);
for (int i = 0; i < result1.length; i++) {
System.out.print(result1[i]+",");
}
}
/*
* 从小到大排序方法
*/
public static int[] minToMaxSort(int[] array) {
for(int i = 0; i<array.length-1; i++ ) {
for(int j = 0; j<array.length-i-1; j++) {
if( array[j]>array[j+1]) {
int num = array[j+1];
array[j+1] = array[j];
array[j] = num;
}
}
}
return array;
}
/*
* 从大到小排序方法
*/
public static int[] maxToMinSort(int[] array) {
for(int i = 0; i<array.length-1; i++ ) {
for(int j = 0; j<array.length-i-1; j++) {
if( array[j]<array[j+1]) {
int num = array[j+1];
array[j+1] = array[j];
array[j] = num;
}
}
}
return array;
}
}
参考代码三:
package com.day4.array;
public class Array2 {
public static void main(String[] args) {
int[] a = new int[] { 1, 9, 2, 5, 4, 8, 3, 6, 7, 10, 8 };
int max = a[0];
int j=0;
for (int i = 0; i < a.length; i++) {
if (max < a[i]) {
max = a[i];
j=i;
}
}
System.out.println("最大数组是"+max+",");
System.out.println("下标是"+j);
int min=a[0];
int z=0;
for (int i = 0; i < a.length; i++) {
if (min > a[i]) {
min = a[i];
z=i;
}
}
System.out.println("最小数组是"+min+",");
System.out.println("下标是"+z);
}
}
参考代码四:
package com.day4.array;
public class Array3 {
public static void main(String[] args) {
int [] a=new int []{72,89,65,58,87,91,53,82,71,93,76,68};
double result = getAverage(a);
System.out.print(result);
}
/*
* 求平均值
*/
public static double getAverage(int[] array) {
double sum=0.00;
for (int i = 0; i < array.length; i++) {
sum+=array[i];
}
return sum/array.length;
}
}
参考代码五:
package com.day4.array;
public class Array4 {
public static void main(String[] args) {
int [] a=new int []{20,45,78,34,16,3,99,56};
int result = getNum(a);
System.out.println("大于50的个数为:"+result);
int result1 = getNum1(a);
System.out.print("小于50的个数为:"+result1);
}
/*
* 大于50的个数
*/
public static int getNum(int[] array) {
int num=0;
for (int i = 0; i < array.length; i++) {
if(array[i]>50){
num++;
}
}
return num;
}
/*
* 小于50的个数
*/
public static int getNum1(int[] array) {
int num=0;
for (int i = 0; i < array.length; i++) {
if(array[i]<50){
num++;
}
}
return num;
}
}
参考代码六:
package com.day4.array;
import java.util.Scanner;
public class Array5 {
public static void main(String[] args) {
int[] a = new int[] { 1, 9, 2, 5, 4, 8, 3, 6, 7, 10, 8 };
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]+",");
}
System.out.println("请输入任意一个整数");
Scanner sc = new Scanner(System.in);
int num=sc.nextInt();
//数组下标
for (int i = 0; i < a.length; i++) {
if(num==a[i]){
int index=i;
System.out.println("数组中可以找到该值:值为"+num+"该值的下标为:"+index);
}else{
System.err.println("没有找到该值");
break;
}
}
}
}
参考代码七:
package com.day4.array;
public class Array6 {
public static void main(String[] args) {
int[] a = new int[] { 72, 89, 65, 58, 87, 91, 53, 82, 71, 93, 76, 68 };
int aNum = 0;
int bNum = 0;
int cNum = 0;
int dNum = 0;
int eNum = 0;
for (int i = 0; i < a.length; i++) {
if (a[i] > 90) {
aNum++;
} else if (a[i] < 90 && a[i] >= 80) {
bNum++;
} else if (a[i] < 80 && a[i] >= 70) {
cNum++;
} else if (a[i] < 70 && a[i] >= 60) {
dNum++;
} else if (a[i] < 60) {
eNum++;
}
}
int[] count = new int[] { aNum, bNum, cNum, dNum, eNum };
for (int i = 0; i < count.length; i++) {
System.out.print(count[i] + ",");
}
}
}
参考代码八:
package com.day4.array;
public class Array7 {
public static void main(String[] args) {
/*
int n[]=new int[8];
for (int i = 0; i < n.length; i++) {
String s=JOptionPane.showInputDialog("请输入第"+(i+1)+"个整数:");
n[i]=Integer.parseInt(s);
}
*/
int n[]={1,2,3,5,8,4,6,10};//{1,3,5},{2,8,4,6,10}
output(n);
}
//该方法的功能是把一个数组按照奇数、偶数分拣到两个数组中,然后交替输出
public static void output(int num[]){
int oddNum[];//奇数数组
int evenNum[];//偶数数组
int evenCount=0,oddCount=0;
for (int i = 0; i < num.length; i++) {
if(num[i]%2==0){
evenCount++;
}else{
oddCount++;
}
}//循环结束已经统计出了num数组中偶数的个数为evenCount,奇数的个数为oddCount
oddNum=new int[oddCount];
evenNum=new int[evenCount];
int p=0,q=0;
for (int i = 0; i < num.length; i++){
if(num[i]%2==0){
evenNum[p]=num[i];
p++;
}else{
oddNum[q]=num[i];
q++;
}
}//此时已经将数组num按照奇数、偶数分拣到两个数组oddNum,evenNum中
if(evenNum.length>oddNum.length){//如果偶数个数较多
for(int i=0;i<=oddNum.length-1;i++){
System.out.print(oddNum[i]+" "+evenNum[i]+" ");
}//先按照奇数的个数交替输出
for(int i=oddNum.length;i<=evenNum.length-1;i++){
System.out.print(evenNum[i]+" ");
}//输出剩下的偶数
}else{
for(int i=0;i<=evenNum.length-1;i++){
System.out.print(oddNum[i]+" "+evenNum[i]+" ");
}//先按照偶数的个数交替输出
for(int i=evenNum.length;i<=oddNum.length-1;i++){
System.out.print(oddNum[i]+" ");
}//输出剩下的奇数
}
}
}