原题:
某百货商场当日消费积分最高的八名顾客,他们的积分分别是:18,25,7,36,13,2,89,63.
参考源代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | /* * 概念有点迷糊 * 参考了书上的一个示例 * 假设第一个数字是最小数字,然后使用循环对其进行比较 */ import java.util.Scanner; public class P170_3{ public static void main (String[]args){ Scanner input = new Scanner (System.in); int jifen[] = new int [8];//定义数组 int min = 0 ;//定义最小值 int index = 0 ; for (int i = 0;i<jifen.length;i++){//循环 System.out.println("请输入第"+(i+1)+"位顾客的积分:"); jifen[i]=input.nextInt();//往数组中存入数据 } min = jifen[0];//假设数组的第一个数字是最小数字 for (int j=0;j<jifen.length;j++){//循环 if ( jifen[j]<min ){//假设数组中的数字小于最小值 min=jifen[j];//将当前数值赋给最小值 index = j ;//获取数组下标 } } System.out.println("最小的积分是:"+min); System.out.println("最小积分在数组中的原始位置是:"+index); } } |
扩展:
输入十位学生的成绩,并进行顺序,逆序输出\n求出最高分及最低分,并算出平均分
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | /* *输入十位学生的成绩,并进行顺序,逆序输出\n求出最高分及最低分,并算出平均分 */ import java.util.Scanner; import java.util.Arrays; public class Test32{ public static void main (String[]args){ Scanner input = new Scanner(System.in); int score[] = new int [10];//定义数组储存10位同学的成绩 int num = 0;//定义成绩之和 System.out.println("输入十位学生的成绩,并进行顺序,逆序输出\n求出最高分及最低分,并算出平均分"); System.out.println("**************************"); for (int i = 0 ; i<score.length;i++){//循环录入学生成绩 System.out.println("请输入第"+(i+1)+"学生的成绩:"); score[i] = input.nextInt(); if ( score[i]>100 || score[i]<0 ){//检测用户输入的数字是否合法 System.out.println(); System.out.println("抱歉!考试成绩应该小于等于100或者大于等于0,请重新输入!"); System.out.println(); continue; } } Arrays.sort(score);//对数组进行排序 System.out.print("顺序输出的值是:\t"); for ( int j = 0;j<score.length;j++ ){//循环输出顺序排序之后的值 System.out.print(score[j]+"\t"); } System.out.println(); System.out.print("逆序输出的值是:\t"); for ( int a = (score.length-1);a>=0;a-- ){//循环输出逆序排序之后的值 System.out.print(score[a]+"\t"); } int max = score[0];//假设数组中的第一个数字为最高分 int min = score [0];//假设数组中的第一个数字为最低分 for (int b = 0;b<score.length;b++){//比较得出数组最高分与最低分 if ( score[b]>max ){ max=score[b]; } if ( score[b]<min ){ min=score[b]; } } System.out.println(); System.out.println("最高分是:"+max); System.out.println("最低分是:"+min); for ( int c = 0;c<score.length;c++ ){//循环得出成绩之和 num = num+score[c]; } System.out.print ("分数平均分是:"+num/10);//输出平均分 System.out.println(); System.out.println("程序结束!"); } } |