1.小明要去买一部手机,他询问了4家店的价格,分别是2800元,2900元,2750元和3100元,显示输出最低价(要求使用数组)
public class Excercise01 {
public static void main(String[] args) {
int a []= new int []{2800,2900,2750,3100};
int min = a[0];
for(int i =1;i < a.length;i++) {
if (a[i] < min) {
min = a[i];
}
}
System.out.print("4家店铺的最低价为:"+min);
}
}
2.某班有6名学生,通过键盘输出每个学生成绩,(成绩自定义)
①.输入该班每个学生的成绩
②.计算并输出该班的总分和平均分
③.输出该班学生的最高分和最低分及其相应的下标
④.输入一个成绩,查看该班有没有该成绩,有则输出其下标,没有则输出无该分数
⑤.对该班学生成绩进行降序排序
⑥.思考:若该班又增加了一名新学生,需要将其成绩添加到数组中,并且要保持增加后的数组依然降序排列(提示:为保证能增加一个新数据,数组长度要定义为7)
public class Excercise02 {
public static void main(String[] args) {
//1.输入该班每个学生的成绩
Scanner sc = new Scanner(System.in);
System.out.print("请输入班级同学数目:");
int num = sc.nextInt();
int i=0;
int score [] = new int[num];
while (i < num) {
System.out.print("第"+(i+1)+"位学生的成绩为:");
score[i] =sc.nextInt();
i++;
}
//2.计算并输出该班的总分和平均分
int sum =0;
double avg;
for(int a = 0; a <6;a++) {
sum = score[a]+sum;
}
System.out.print("该班的总分为:"+sum);
avg = sum / score.length;
System.out.print("\n"+"该班的平均分为:"+avg);
//3.输出该班学生的最高分和最低分及其相应的下标
int max = score[0];
int countmax = 0;
for (int b = 1;b < score.length;b++) {
if(score[b] > max) {
max = score[b];
countmax = b;
}
}
System.out.print("最大成绩为:"+max);
System.out.println("最大成绩的下标为:"+countmax);
int min = score[0];int countmin = 0;
for(int k = 1;k < score.length;k ++) {
if(score[k] > min) {
}else {
min = score[k];
countmin = k;
}
}
System.out.print("\n"+"最小成绩为:"+min);
System.out.println("最小成绩的下标为:"+countmin);
//4.输入一个成绩,查看该班有没有该成绩,有则输出其下标,没有则输出 无该分数
Scanner sc1 =new Scanner (System.in);
System.out.print("\n"+"请输入查询的成绩:");
int score1 = sc1.nextInt();
int count =0;
//boolean flag = true;
for(i = 0 ;i < score.length;i++) {
if(score1 == score[i]) {
count = i;
System.out.print("查询成绩的下标为:"+count);
}
}
//5.对该班学生成绩进行降序排序
for(i=0;i<6;i++) {
for(int j=0;j<score.length-1;j++) {
if(score[j] < score[j+1]) {
int a =score[j];
score[j]=score[j+1];
score[j+1]= a;
}
}
}
for(i=0;i<6;i++) {
System.out.print("学生的成绩有大到小为:"+score[i]);
}
}
}
//6.若该班又增加了一名新学生,需要将其成绩添加到数组中,并且要保持增加后的数组依然降序排列(提示:为保证能增加一个新数据,数组长度要定义为7)
public class Excercise0206 {
public static void main(String[] args) {
canner sc = new Scanner(System.in);
int score []= new int [6];
for (int i = 0 ; i < score.length;i ++) {
System.out.print("请输入第"+(i+1)+"的同学成绩为:");
score[i] = sc.nextInt();
}
for(int i =0 ; i <score.length; i++) {
for (int j = 0;j < score.length-1;j++) {
if(score[j]<score[j+1]) {
int temp =score[j];
score[j] = score[j+1];
score[j+1] = temp;
}
}
}
System.out.print("降序为: ");
for(int n :score) {
System.out.print(n+" ");
}
int newScore[] = score.clone();
int newScore1[] = new int [newScore.length+1];
System.out.print("\n新建数组:\n");
for(int i =0;i<newScore.length;i++) {
newScore1[i]=newScore[i];
System.out.print(newScore1[i]+" ");
}
System.out.print("\n添加同学的成绩为:");
int num =sc.nextInt();
int intep = 0;
System.out.println("同学成绩插入位置的下标为:");
for(int j =0;j<newScore1.length;j++) {
if(num<newScore1[j] && num >newScore1[j+1]) {
intep = j+1;
}
}
System.out.print(intep);
for(int j =newScore1.length-1 ; j>intep;j--) {
newScore1[j]=newScore1[j-1];
}
newScore1[intep]=num;
System.out.println("\n插入后的数组排序:");
for(int b :newScore1) {
System.out.print(b+" ");
}
}
}
3.扩展:定义一个有序的数组,随机删除某个数,判断是否存在这个数,若存在,删除后保持原来排序,若不存在,保持原数组不变。
public class Excercise020601 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//定义数组,铲除某个数字(升序)
Scanner sc =new Scanner(System.in);
System.out.print("请输入你要排序值的个数");
int num=sc.nextInt();
int arr1[]=new int[num];
for(int a =0;a<num;a++) {
System.out.print("请输入第"+(a+1)+"个值");
arr1[a]=sc.nextInt();
}
System.out.print("输入后的原始数据为:\n");
for(int arr:arr1) {
System.out.print(arr+" ");
}
int a1[]=arr1.clone();
for(int i =0;i<a1.length;i++) {
for(int j =0; j<a1.length-i-1;j++) {
if (a1[j]>a1[j+1]) {
int temp = a1[j];
a1[j]=a1[j+1];
a1[j+1]=temp;
}
}
}
System.out.print("\n升序后的结果为:\n");
for(int a:a1) {
System.out.print(a+" ");
}
//判断是否存在哪个值
System.out.print("\n请输入你要删除的值\n");
int b =sc.nextInt();
int a=-1;
for(int i =0;i<a1.length;i++) {
if(b == a1[i]) {
a =i;
//System.out.print(a);
}}
if(a<0) {
System.out.print("不存在,无法删除");
}
if(a > 0) {//a=0 时要重新定义
System.out.print("存在,删除后的数组为\n");
for(int i =0;i<a1.length-a;i++) {
for(int d =0;d<a;d++) {
a1[d] =a1[d];
System.out.print(a1[d]+" ");
}
for(int j =a;j<a1.length-1;j++) {
a1[j]=a1[j+1];
System.out.print(a1[j]+" ");
}
break;
}
}
if(a==0){
System.out.print("存在,删除后的数组为\n");
for (int i =0;i<a1.length-a;i++) {
for(int j =a;j<a1.length-1;j++) {
a1[j]=a1[j+1];
System.out.print(a1[j]+" ");
}
break;
}
}
}
}
4.校园歌手大赛,有10评委,请设计一个程序,输入10位评委的打分,然后去掉一个最高分和一个最低分,余下8位评委的平均分将会是该选手的得分,
输出该选手的得分。
public class Excercise03 {
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
System.out.print("请输入评委数量:");
int num = sc.nextInt();
int score []= new int [num];
int sum=0;
double avg=0;
for (int i = 0; i < num;i++) {
System.out.print("请输入第"+(i+1)+"位评委的成绩:");
score [i] = sc.nextInt();
sum += score[i];
}
System.out.print("几位评委的总成绩为:"+sum);
int max =score[0];
for(int i = 1;i <num;i++) {
if(max < score[i]) {
max = score[i];
}
}
int min =score[0];
for(int i = 1;i <num;i++) {
if(min > score[i]) {
min = score[i];
}
}
avg = (sum-min-max)/((score.length)-2);
System.out.print("\n"+"选手的最后得分为:"+avg);
}
}
5.要求从键盘输入10个整数,然后对这10个数进行降序排序并输出。
(2)将数组反序(采用冒泡排序法)
public class Excercise04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a[]= new int[10];
for (int i =0;i <=9;i++) {
//int a[]= new int[10];
System.out.print("第"+(i+1)+"个整数为:");
a [i] =sc.nextInt();
}
for (int d =0;d < a.length;d++) {
for(int b =0;b <a.length-1;b++ ) {
if(a[b]<a[b+1]) {
int c =a[b];
a[b] =a[b+1];
a[b+1]=c;
}
}
}
System.out.print("降序为:");
for (int d =0;d < a.length;d++) {
System.out.print(a[d]+",");
}
System.out.print("\n"+"升序为:");
for (int d =0;d < a.length;d++) {
for(int b =0;b <a.length-1;b++ ) {
if(a[b]>a[b+1]) {
int c =a[b];
a[b] =a[b+1];
a[b+1]=c;
}
}
}
for (int d =0;d < a.length;d++) {
System.out.print(a[d]+",");
}
}
}