1.定义一个数组,获取这个数组中的最小值
2.定义一个数组,数组成员10个,找出数组中最大数连同下标一起输出
3.给定一个整型数组,数组成员10个,求该数组中第二大的数的下标
4.B哥去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分?
利用选择排序对数据进行降序排序
5.从控制台读入5个int型数存入数组,先将数组元素逆序输出,再对数组元素进行降序排序,然后输出排好的数组元素。
6.定义一个java一维数组如{1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}将数组中0去掉,非0的存到另一个数组中,得到结果{1,3,4,5,6,6,5,4,7,6,7,5}
package workdemo;
import java.util.Scanner;
/**
* 定义一个数组,获取这个数组中的最小值
* @author WDD
*
*/
public class demo1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请问您要输入多少个数:");
int num = sc.nextInt();
int[] a = new int[num];
System.out.println("请输入您要输入的数字:");
for (int i = 0; i < a.length; i++) {
a[i] = sc.nextInt();
}
for (int i = 1; i < a.length; i++) {
if (a[0] > a[i]) {
int temp = a[0];
a[0] = a[i];
a[i] = temp;
}
}
System.out.println("数组中最小的数是:"+a[0]);
sc.close();
}
}
package workdemo;
import java.util.Scanner;
/**
* 定义一个数组,数组成员10个,找出数组中最大数连同下标一起输出
* @author WDD
*
*/
public class demo2 {
public static void main(String[] args) {
int[] a = new int[10];
Scanner sc = new Scanner(System.in);
System.out.println("请输入数组的10个数:");
for (int i = 0; i < a.length; i++) {
a[i] = sc.nextInt();
}
int m = 0;// 创建一个变量,负责接受最大值的下标
int t = a[0];//创建一个变量,负责接受最大值
for (int i = 1; i < a.length; i++) {
if(a[0] < a[i]) {
t = a[i];
m = i;
int temp = a[0];
a[0] = a[i];
a[i] = temp;
}
}
System.out.println("最大值为:"+t+"\n"+"最大值下标为:"+m);
sc.close();
}
}
package workdemo;
import java.util.Scanner;
/**
* 给定一个整型数组,数组成员10个,求该数组中第二大的数的下标
* @author WDD
*
*/
public class demo3 {
public static void main(String[] args) {
int[] a = new int[10];
Scanner sc = new Scanner(System.in);
System.out.println("请输入数组的10个数:");
for (int i = 0; i < a.length; i++) {
a[i] = sc.nextInt();
}
/**
* 新复制的数组不能直接用int[] b = a;
* 那样当数组a排序之后,数组b也会排序,因为地址指向位置一样,
* 应当用for循环,然后挨个赋值
* 或者用copyOfRange(int[] original,int from,int to)
* 将指定数组的指定范围复制到一个新数组。
* original - 将要从其复制一个范围的数组
* from - 要复制的范围的初始索引(包括)
* to - 要复制的范围的最后索引(不包括)。
*
*/
//赋值一个数组
int[] b = new int[10];
for (int i = 0; i < b.length; i++) {
b[i] = a[i];
}
//冒泡排序
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - 1 - i; j++) {
if(a[j] > a[j+1]) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
//输出打印第二大值
for (int i = 0; i < b.length; i++) {
if(b[i] == a[a.length - 2]) {
System.out.println("数组中第二大值为:"+a[a.length - 2] + "\n" + "第二大值得下标为:" + i);
}
}
sc.close();
}
}
package workdemo;
import java.util.Scanner;
/**
* B哥去参加青年歌手大奖赛,有10个评委打分,
* (去掉一个最高一个最低)求平均分?
* 利用选择排序对数据进行降序排序
* @author WDD
*/
public class demo4 {
public static void main(String[] args) {
double[] a = new double[10];
Scanner sc = new Scanner(System.in);
System.out.println("请输入B哥的10次成绩:");
for (int i = 0; i < a.length; i++) {
double n = sc.nextInt();
a[i] = n;
}
//用选择排序将B哥的10次成绩进行排序
for (int i = 0; i < a.length - 1; i++) {
for (int j = i + 1; j < a.length; j++) {
if (a[i] > a[j]) {
double temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
//遍历一遍数组,计算B哥除去最高分和最低分的成绩
double num = 0;
for (int i = 1; i < a.length - 1; i++) {
num += a[i];
}
System.err.println("B哥的平均分为" + (num/8));
sc.close();
}
}
package workdemo;
import java.util.Scanner;
/**
* 从控制台读入5个int型数存入数组,
* 先将数组元素逆序输出,再对数组元素进行降序排序,
* 然后输出排好的数组元素.
* @author WDD
*/
public class demo5 {
public static void main(String[] args) {
int[] a = new int[5];
Scanner sc = new Scanner(System.in);
System.out.println("请输入5个int整型:");
for (int i = 0; i < a.length; i++) {
a[i] = sc.nextInt();
}
//对数组元素进行逆序输出
for (int i = a.length - 1; i >= 0; i--) {
System.out.print(a[i] + " ");
}
//对数组元素进行降序排列
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - 1 - i; j++) {
if (a[j] < a[j+1]) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
//打印降序排序后的数组
System.out.println();
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
sc.close();
}
}
package workdemo;
/**
* 定义一个java一维数组 如{1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}
* 将数组中0去掉, 非0的存到另一个数组中,
* 得到结果{1,3,4,5,6,6,5,4,7,6,7,5}
* @author WDD
*/
public class demo6 {
public static void main(String[] args) {
int[] a = { 1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5 };
int count = 0; //定义一个常量 记录0出现的次数
for (int i = 0; i < a.length; i++) {
if(a[i] == 0) {
count++;
}
}
//定义新的数组b,长度为a数组去掉0的个数
int[] b = new int[a.length-count];
int j = 0; //新数组从0开始被挨个赋值
for (int i = 0; i < a.length; i++) {
if (a[i] != 0) {
b[j++] = a[i];
}
}
for (int i = 0; i < b.length; i++) {
System.out.print(b[i] + " ");
}
}
}