练习:32

原题:
某百货商场当日消费积分最高的八名顾客,他们的积分分别是: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("程序结束!");
        }
    }

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据