清除重复元素。 int[] oldArr = {1,4,9,4,1,1,7}; 把非重复元素存储到一个新的数组中返回,而且也是
不能浪费长度。
import java.util.Arrays;
public class Demo4 {
public static void main(String[] args) {
int[] oldArr = {1,4,9,4,1,1,7};
int[] newArr = clearRepeat(oldArr);
System.out.println("清除重复元素后的数组:"+Arrays.toString(newArr));
}
public static int[] clearRepeat(int[] oldArr) {
int count = 0;//该变量用于计算重复个数
//使用选择排序挨个比较
for(int i=0;i<oldArr.length-1;i++) {
for(int j=i+1;j<oldArr.length;j++) {
if(oldArr[i]==oldArr[j]) {
count++;
break;
}
}
}
int index = 0;//重新定义数组索引值
int[] newArr = new int[oldArr.length-count];
for(int i=0;i<oldArr.length;i++) {
boolean flag = false;//标识取出的元素是否存在新数组中,默认情况下是不存在的
int temp = oldArr[i];//从旧数组中取出元素比较
for(int j=0;j<newArr.length;j++) {
if(oldArr[i]==newArr[j]) {
flag = true;
break;
}
}
if(flag==false) {
newArr[index++] = temp;
}
}
return newArr;
}
}
用户输入班级的人数,然后依次输入每个同学的成绩.
输入完毕之后,如果及格率没有达到60%, 就为每1个没有及格的成绩加2分,直到及格率达到60%为止。
import java.util.*;
//import java.util.Scanner;
/*
* 用户输入班级的人数,然后依次输入每个同学的成绩.
输入完毕之后,如果及格率没有达到60%, 就为每1个没有及格的成绩加2分,直到及格率达到60%为止。 */
public class Demo5 {
//准备数据方法
public static int[] readyData() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入班级人数:");
int count = scanner.nextInt();
int[] arr = new int[count];
for(int i=0;i<count;i++){
System.out.println("请输入第"+(i+1)+"位同学的分数:");
arr[i] = scanner.nextInt();
}
return arr;
}
//计算及格率方法
public static double getRate(int[] arr) {
double count = 0;//累计及格人数
for(int i=0;i<arr.length;i++) {
if(arr[i]>=60) {
count++;
}
}
double rate = count/arr.length;
return rate;
}
public static void main(String[] args) {
int[] arr = readyData();//创建个新数组存放键盘输入的数据
double rate = getRate(arr);//存放比率
while(true) {
if(rate<0.6) {
for(int i=0;i<arr.length;i++) {
if(arr[i]<60) {
arr[i]+=2;
}
}
//重新计算及格率
rate = getRate(arr);
}
else {
break;
}
}
System.out.println("学生所有成绩是:"+Arrays.toString(arr)+"及格率是:"+rate*100+"%");
}
}