请输入10位同学的java成绩,
1、求平均成绩,最高成绩、最低成绩
2、对10的成绩按照从低到高的顺序排列
package homeworkday09;
import java.util.Scanner;
//请输入10位同学的java成绩,
//1、求平均成绩,最高成绩、最低成绩
//2、对10的成绩按照从低到高的顺序排列
public class homework01 {
public static void main(String[] args) {
int[] arr =createLinearArray();
qiuzhi(arr);
bubbleSort(arr);
show1(arr);
}
//创造整型一维数组
public static int[] createLinearArray(){
Scanner sc = new Scanner(System.in);
System.out.println("创造一维整型数组容量为:");
int a = sc.nextInt();
int[] arr = new int[a];
for(int i = 0;i < arr.length;i++){
System.out.println("请输入第"+(i+1)+"个整数装入数组");
arr[i] = sc.nextInt();
}
sc.close();
return arr;
}
// 求最大值、最小值、平均值
public static void qiuzhi(int[] arr) {
int sum = 0;
int min = arr[0];
int max = arr[0];
for(int index = 0;index<arr.length;index++){
sum += arr[index];
if(max <= arr[index]){
max = arr[index];
}
if(min >= arr[index]){
min = arr[index];
}
}
double mean = (double)sum/arr.length;
System.out.println("最大值为:"+max);
System.out.println("最小值为:"+min);
System.out.println("平均值为:"+mean);
}
//一维数组冒泡排序
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr, j, j + 1);//使用自定义数组内值的交换swap()函数
}
}
}
}
//数组内值的交换
public static void swap( int[] arr,int a,int b){
arr[a] = arr[a]^arr[b];
arr[b] = arr[a]^arr[b];
arr[a] = arr[a]^arr[b];
}
//一维数组遍历方法一
public static void show1(int[] arr){
System.out.println("数组内值展示");
for(int i = 0;i < arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}
2.给定一个数组,判断某个元素是否在该数组中
package homeworkday09;
//给定一个数组,判断某个元素是否在该数组中
import java.util.Scanner;
public class homework02 {
public static void main(String[] args) {
int[] arr = createLinearArray();
System.out.println("数值展示:");
show2(arr);
System.out.println();
insertSort(arr);
System.out.println("请输入你要查找的数:");
Scanner sc = new Scanner(System.in);
int target = sc.nextInt();
int index =binaySearch(arr,target);
if(index == -1) {
System.out.println("该数不在此数组!");
}else {
System.out.println("该数在数组中第"+(index+1)+"位");
}
sc.close();
}
//创造整型一维数组
public static int[] createLinearArray(){
Scanner sc = new Scanner(System.in);
System.out.println("创造一维整型数组容量为:");
int a = sc.nextInt();
int[] arr = new int[a];
for(int i = 0;i < arr.length;i++){
System.out.println("请输入第"+(i+1)+"个整数装入数组");
arr[i] = sc.nextInt();
}
return arr;
}
//数组内值的交换
public static void swap( int[] arr,int a,int b){
arr[a] = arr[a]^arr[b];
arr[b] = arr[a]^arr[b];
arr[a] = arr[a]^arr[b];
}
//一维数组插入排序
public static void insertSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j > 0; j--) {
if (arr[j] < arr[j - 1]) {
swap(arr, j, j - 1);//使用自定义数组内值的交换swap()函数
}
}
}
}
//一维数组遍历方法二
public static void show2(int[] arr){
int a = 0;
while(a < arr.length){
System.out.print(arr[a]+" ");
a++;
}
}
//一维数组有序数列二分查找
public static int binaySearch(int[] arr,int target){
int start = 0;
int end = arr.length-1;
while(start <= end){
int middle = (start + end) >> 1;
if(target < arr[middle]){
end = middle-1;
}else if(target > arr[middle]){
start = middle+1;
}else{
return middle;
}
}
return -1;
}
}
函数中加了sc.close();编译没问题,但运行会报错,待解决
3.给定一个数组,大小为10,输入十个同学的成绩,求这些成绩的总分数
某一天转入2个新同学,请再次求12个同学的平均成绩(尝试着使用扩容的形式做)
package homeworkday09;
//给定一个数组,大小为10,输入十个同学的成绩,求这些成绩的总分数
//某一天转入2个新同学,请再次求12个同学的平均成绩(尝试着使用扩容的形式做)
import java.util.Scanner;
public class homework3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr =createLinearArray(10);
qiuzhi(arr);
System.out.println("请输入第11同学的成绩");
int a = sc.nextInt();
System.out.println("请输入第12同学的成绩");
int b = sc.nextInt();
int[] arr2 = LinearArray(arr,a,b);
qiuzhi2(arr2);
sc.close();
}
public static int[] createLinearArray(int a ){
Scanner sc = new Scanner(System.in);
int[] arr = new int[a];
for(int i = 0;i < arr.length;i++){
System.out.println("请输入第"+(i+1)+"同学的成绩");
arr[i] = sc.nextInt();
}
return arr;
}
public static int[] LinearArray(int[] arr,int a,int b ){
Scanner sc = new Scanner(System.in);
int[] arr2 = new int[12];
for(int i = 0;i < arr.length;i++){
arr2[i] =arr[i];
}
arr2[10] = a;
arr2[11] = b;
return arr2;
}
public static void qiuzhi(int[] arr) {
int sum = 0;
for(int index = 0;index<arr.length;index++){
sum += arr[index];
}
System.out.println("总成绩为:"+sum);
}
public static void qiuzhi2(int[] arr2) {
int sum = 0;
for(int index = 0;index<arr2.length;index++){
sum += arr2[index];
}
double mean = (double)sum/arr2.length;
System.out.println("平均成绩为:"+mean);
}
//一维数组遍历方法一
public static void show1(int[] arr){
System.out.println("数组内值展示");
for(int i = 0;i < arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}
4:如何将10个0-10随机存入数组中
package homeworkday09;
//如何将10个0-10随机存入数组中
public class homework4 {
public static void main(String[] args) {
int[] arr = createLinearArray();
show(arr);
}
public static int[] createLinearArray(){
int[] arr = new int[10];
for(int i = 0;i < arr.length;i++){
arr[i] =(int)Math.floor(Math.random()*10);
}
return arr;
}
//一维数组迭代
public static void show(int[] arr){
for(int a:arr){
System.out.print(a+" ");
}
}
}
5.存在整数数组nums,将该数组中的所有偶数元素排列到奇数元素前
package homeworkday09;
import java.util.Scanner;
//存在整数数组nums,将该数组中的所有偶数元素排列到奇数元素前
public class homework5 {
public static void main(String[] args) {
int[] nums = createLinearArray() ;
System.out.println("展示:");
show1(nums);
System.out.println("将该数组中的所有偶数元素排列到奇数元素前:");
noInsertSort(nums);
System.out.println();
show1(nums);
}
//创造整型一维数组
public static int[] createLinearArray(){
Scanner sc = new Scanner(System.in);
System.out.println("创造一维整型数组容量为:");
int a = sc.nextInt();
int[] arr = new int[a];
for(int i = 0;i < arr.length;i++){
System.out.println("请输入第"+(i+1)+"个整数装入数组");
arr[i] = sc.nextInt();
}
sc.close();
return arr;
}
//一维数组插入排序变种
public static void noInsertSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j > 0; j--) {
if ((arr[j] & 1) == 0) {
swap(arr, j, j - 1);//使用自定义数组内值的交换swap()函数
}
}
}
}
//一维数组遍历方法一
public static void show1(int[] arr){
for(int i = 0;i < arr.length;i++){
System.out.print(arr[i]+" ");
}
}
//数组内值的交换
public static void swap( int[] arr,int a,int b){
arr[a] = arr[a]^arr[b];
arr[b] = arr[a]^arr[b];
arr[a] = arr[a]^arr[b];
}
}
6.将数组中的重复数据去重
package homeworkday09;
//去除数组中重复项(不含有-404项)
import java.util.Scanner;
public class homework6 {
public static void main(String[] args) {
int[] arr = createLinearArray();
System.out.println("输入数组为:");
show1(arr);
bubbleSort(arr);
System.out.println();
System.out.println("升序排序::");
show1(arr);
deleteRepetition(arr);
System.out.println();
System.out.println("去除重复:");
show2(arr);
}
//创造整型一维数组
public static int[] createLinearArray(){
Scanner sc = new Scanner(System.in);
System.out.println("创造一维整型数组容量为:");
int a = sc.nextInt();
int[] arr = new int[a];
for(int i = 0;i < arr.length;i++){
System.out.println("请输入第"+(i+1)+"个非-404整数装入数组");
arr[i] = sc.nextInt();
}
sc.close();
return arr;
}
//一维数组冒泡排序
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr, j, j + 1);//使用自定义数组内值的交换swap()函数
}
}
}
}
//数组内值的交换
public static void swap( int[] arr,int a,int b){
arr[a] = arr[a]^arr[b];
arr[b] = arr[a]^arr[b];
arr[a] = arr[a]^arr[b];
}
//一维数组遍历方法一
public static void show1(int[] arr){
for(int i = 0;i < arr.length;i++){
System.out.print(arr[i]+" ");
}
}
//一维数组遍历方法m
public static void show2(int[] arr){
for(int i = 0;i < arr.length;i++){
if(arr[i]!=-404) {
System.out.print(arr[i]+" ");
}else
System.out.print("");
}
}
public static void deleteRepetition(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j > 0; j--) {
if ((arr[j] ^ arr[j-1]) == 0) {
arr[j-1]=-404;
}
}
}
}
}