【实验八】
数组什么冒泡排序什么的,不会不会不会不会不会
1、借助一维数组实现求某班Java成绩的平均分,班级人数和成绩从键盘输入。
import java.util.Scanner;
public class Eight1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入班级人数");
int i = in.nextInt();
int a[] = new int[i];
double sum =0;
for(int b=0;b<i;b++) {
System.out.println("请输入第"+(b+1)+"个成绩");
a[b]=in.nextInt();
sum+=a[b];
}
double avg = sum/i;
System.out.println("平均成绩是"+avg);
}
}
2、查找一个数x在数组中出现的次数。
public class Eight2 {
public static void main(String[] args) {
int i[] = {1,2,3,4,5,6,8,5,5};
int sum=0,n1=5;
for(int a = 0;a<i.length;a++) {
if(n1==i[a])sum++;
}
System.out.println(sum+"次");
}
}
3、借助一维数组实现Fibonacci数列前20项的显示 。
public class Eight3 {
public static void main(String[] args) {
int f[] = new int[20];
f[1] = f[2] = 1;
System.out.println(f[1]);
System.out.println(f[2]);
for(int n=3;n<20;n++) {
f[n] = f[n-1]+f[n-2];
System.out.println(f[n]);
}
}
}
4、将数组中的全部数据逆向存放排列并输出。
public class Eight4 {
public static void main(String[] args) {
int l[] = {1,2,3,4,5,6,7};
int q,h;
int t;
for(q=0,h=l.length;q<h;q++,h--) {
t = l[q];
l[q] = l[h];
l[h] = t;
}
for(int i=0;i<l.length;i++) {
System.out.print(l[i]+"\t");
}
}
}
5、在数组中查找x是否存在,如果存在将其删除,如果不存在做出提示。
public class Eight5 {
public static void main(String[] args) {
int l[]= {1,3,5,7,9,11,13,15,17};
int x = 3, n,i = -1;
for(n = 0;n<l.length;n++) {
if(x == l[n]) {
i=n;
break;
}
}
if(i == -1)
System.out.println("不存在");
else {
for(i=n;i<l.length;i++)
l[n] = l[n+1];
}
for(int m=0;m<l.length;m++)
System.out.print(l[m]+"\t");
}
}
6、在一个升序排列的数组中插入一个值x,使得插入后仍然保持数据的升序。
import java.util.Scanner;
public class Eight6 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入x");
int x = in.nextInt();
int l[] = {1,2,3,4,8,10,14,18};
int n,m=0;
for(n=l.length-1;n>=0;n--) {
if(l[n]<x) {
m=n+1;
break;
}
}
int ll[] = new int[l.length+1];
for(int i=0;i<ll.length;i++) {
if(i<m)ll[i] = l[i];
else if (i == m)ll[i] = x;
else if (i>m) ll[i] = l[i-1];
}
for(int n1 = 0;n1<ll.length;n1++) {
System.out.print(ll[n1]+"\t");
}
}
}
7、实现课本P79任务2-3 随机点名器。
抄的课本,不会。
import java.util.Random;
import java.util.Scanner;
public class Eight7 {
public static void addStudentName(String[] students) {
Scanner sc = new Scanner(System.in);
for (int i=0;i<students.length;i++) {
System.out.println("存储第"+(i+1)+"个姓名:");
students[i]=sc.next();
}
}
public static void printStudentName(String[] students) {
for (int i=0;i<students.length;i++) {
String name=students[i];
System.out.println("第"+(i+1)+"个学生姓名:"+name);
}
}
public static String randomStudentName(String[] students) {
int index=new Random().nextInt(students.length);
String name=students[index];
return name;
}
public static void main (String[] args) {
System.out.println("~~~~~~~随机点名器~~~~~~");
String[] students = new String[5];
addStudentName(students);
printStudentName(students);
String randomName=randomStudentName(students);
System.out.println("被点到名的同学是:"+randomName);
}
}
8、借助任意一种排序算法对某班的Java成绩进行升序排序。
public class Eight8 {
public static void main(String[] args) {
int cj[] = {88,78,85,68,65,95,14,54,55};
for(int n=0;n<cj.length;n++) {
for(int m =0;m<cj.length;m++) {
if(cj[n]<cj[m]) {
int t = cj[m];
cj[m] = cj[n];
cj[n] = t;
}
}
}
for(int i=0;i<cj.length;i++)
System.out.print(cj[i]+"\t");
}
}