java 数组练习题2

时间:2023-02-23 12:17:45

/*
3.编写一个程序,使它能够读入10个整数,并且存储其中互不相同的数,
最后将这10个数输出。
4.先对数组{1,3,9,5,6,7,1,5,4,8}
进行排序,然后二分查找法找出数组中的元素8,
标出其排序后其下标的位置。

5.编写一个程序,读入数目确定的考试分数,
并且判断有多少个分数高于或等于平均分,
有多少个分数低于平均分。
输入一个负数标志输入结束,假设最高分为100。

6.编写一个程序,生成0-9之间的100个随机整数
并且显示每一个数的个数。

  1. 求平均值和方差。利用 mean(int []numbers)
    求平均值,利用 deviation(int []numbers)求标准差。
    8.编写一个程序,求出整数数组中最小元素的下标。
    如果这样的元素个数大于1,则返回下标最小的
    数的下标。

    */
    package com.yangheng0414_3.cn;

import java.util.Arrays;
import java.util.Scanner;

public class Lianxi_ceshi {
public static void main(String[] args) {
//show();
// show1();
// show2();
show3();
}
/*
3.编写一个程序,使它能够读入10个整数,并且存储其中互不相同的数,
最后将这10个数输出。
*/
public static void show(){
Scanner input =new Scanner(System.in);
int[] arr=new int[10];
System.out.println(“请输入10个整数”);
for (int i = 0; i < arr.length; i++) {
arr[i]=input.nextInt();
}
System.out.println(Arrays.toString(arr));
}
/*
4.先对数组{1,3,9,5,6,7,1,5,4,8}
进行排序,然后二分查找法找出数组中的元素8,
标出其排序后其下标的位置。
* */
public static void show1(){
Scanner input=new Scanner(System.in);
System.out.println(“请输入你要查找的数”);
int key=input.nextInt();
int[] arr={1,3,9,5,6,7,1,5,4,8};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
int max=arr.length-1;
int min=0;
int mid=(max+min)/2;

        for (int i = 0; i < arr.length; i++) {
if(key != arr[mid]){
if(key<arr[mid]){
max=mid-1;
mid=(max+min)/2;
}else
if(key>arr[mid]){
min=mid+1;
mid=(max+min)/2;
}

}
}

System.out.println(Arrays.toString(arr));
if(arr[mid]==key){
System.out.println("这个数是"+arr[mid]);
System.out.println("角标是"+mid);
}else{

System.out.println("没有这个数");


}
}

/*
* 5.编写一个程序,读入数目确定的考试分数,

并且判断有多少个分数高于或等于平均分,
有多少个分数低于平均分。
输入一个负数标志输入结束,假设最高分为100。
*
* */
public static void show2(){
Scanner input=new Scanner(System.in);
double[] arr =new double[100];
System.out.println(“请输入你的分数”);

    int geshu=0;
for (int i = 0; i <arr.length; i++) {
double temp=input.nextDouble();


if(temp<0 ){

break;
}else if(temp>100){
System.out.println("最高分数为100分,请重新输入");
continue;
}
else{
arr[i]=temp;
geshu++;
}
}
//求出平均分

double sum=0;//总分

for (int j = 0; j < arr.length; j++) {
sum +=arr[j];
}
double avg=sum/geshu;//平均分
//计算有多少高于平均分的
int num=0;
for (int k = 0; k < arr.length; k++) {
if(arr[k]>avg){
num++;

}
}
System.out.println("平均分是"+avg);
System.out.println("高于平均分的有"+num);

}
/*
*

6.编写一个程序,生成0-9之间的100个随机整数
并且显示每一个数的个数。
//没做完
*/
public static void show3(){
int[] arr=new int[100];
int num=0;
for (int i = 0; i