1. 给定一个int类型的数组,要求:
(1)求和;
(2)求平均数(int);
(3)求最大值,最小值;
(4)打印这个数组中数据。
分析:(1)迭加(循环法)
(2)迭加(循环法)→除法得商+强制转型
(3)排序(插入法)→首尾取数
(4)遍历(循环法)
package array;
import java.util.Scanner;
public class Array1 {
public static void main(String[] args) {
int[] a={33,77,11,66,22,88,44,99,55};
Scanner scan=new Scanner(System.in);
System.out.println("请输入要求实现的功能的数字:\n1.求和 2.求平均数\n3.求最大值与最小值 4.打印这个数组中数据");
String function=scan.next();
long sum = 0;
switch(function){
case"1":
for(int i=0;i<a.length;i++){
sum += a[i];
}
System.out.println("和的值:"+sum);
break;
case"2":
for(int i=0;i<a.length;i++){
sum += a[i];
}
int ave = (int)(sum/a.length);
System.out.println("平均数的值:"+ave);
break;
case"3":
for (int i=1;i<=a.length-1;i++) {
int data=a[i]; // 当前“指示灯数据”
int j=i-1; // 使用j变量记录“指示灯数据”的前一个数据的索引
while(j>=0 && data<a[j]){
a[j+1]=a[j]; // 后移“指示灯”数据前面的数据
j--;
}
a[j+1]=data;
}
System.out.println("最大值:"+a[a.length-1]+" "+"最小值:"+a[0]);
break;
case"4":
System.out.println("打印此数组中的数据:");
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
break;
default:
System.out.println("您输入的数字有误!");
}
scan.close(); // 关闭
}
}
2. 给定两个整型数组a和b,找出其共同元素。
eg:int[] a={23,12,45,11};
int[] b={99,33,12,45,67,11};
需要找出:12,45,11
分析:遍历数组→有序判断数组中元素一致→输出相同元素
package array;
public class Array2 {
public static void main(String[] args) {
int[] a={23,12,45,11};
int[] b={99,33,12,45,67,11};
for (int i = 0; i < a.length; i++) {
for (int j = 0; j <b.length; j++) {
if (a[i] == b[j]) {
System.out.print(a[i]+" ");
}
}
}
}
}
3. 在某歌唱比赛中,共有10位评委进行打分,在计算歌手得分时,去掉一个最高分,去掉一个最低分,然后剩余的8位评委的分数进行平均,就是该选手的最终得分。10位评委对某歌手的打分分别是:78、60、85、96、77、66、60、82、88、85。
计算该歌手的最终得分。
分析:排序(插入法,从第一个至最后一个)→迭加(从第二个至倒数第二个)→除法
package array;
public class Array3 {
public static void main(String[] args) {
int[] a={78,60,85,96,77,66,60,82,88,85};
double sum=0;
for (int i=1;i<=a.length-1;i++) {
int data=a[i];
int j=i-1;
while(j>=0 && data<a[j]){
a[j+1]=a[j];
j--;
}
a[j+1]=data;
}
for (int i=1;i<=a.length-2;i++) {
sum=sum+a[i];
}
double ave=sum/(a.length-2);
System.out.print("该歌手的最终得分是:"+ave);
}
}
4. 兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。初始有一对小兔子,假设所有兔子都不死。
计算前12个月每个月的兔子对数。
分析:
第一个月:1对
第二个月:1对
第三个月:2对
第四个月:3对
第五个月:5对
......
易知符合Fibonacci数列。设每个月的兔子对数为an,则有
package array;
import java.util.Scanner;
public class Array4 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.print("请输入月份数:");
intn=scan.nextInt();
Fib(n);
scan.close();
}
public static void Fib(int n){
int mon1 = 1,mon2 = 1,monSum = 0;
if(n < 2){
return;
}
for(int i = 1;i < n+1;i++){
mon1 = mon2;
mon2 = monSum;
monSum = mon1 + mon2;
System.out.println("第"+i+"月的兔子对数:"+monSum);
}
return;
}
}
Copyright © 2017 Jin Hanquan. All rights reserved.