经典例子彻解数组

例1:求学生的平均分

 1 public static void main(String[] args) {
 2 Scanner input=new Scanner(System.in);
 4         int scores []=new int[5];
 5         int sum=0;
 6
 7         System.out.println("请输入五位同学的成绩:");
 8         for (int i = 0; i < scores.length; i++) {//遍历数组
 9             scores[i]=input.nextInt();
10             sum+=scores[i];//成绩累加
11         }
12         System.out.print("平均分:"+sum/scores.length);

例2:输出5笔购物金额及总金额

 1 public static void main(String[] args) {
 2         Scanner input=new Scanner(System.in);
 3         double sum=0;
 4         double scores[]=new double[5];
 5         for (int i = 0; i < scores.length; i++) {
 6             System.out.print("请输入第"+(i+1)+"笔金额的记录:");
 7             scores[i]=input.nextDouble();
 8              sum+=scores[i];
 9         }
10         System.out.println("序号\t\t"+"金额(元)");
11         for (int i = 0; i < scores.length; i++) {
12             System.out.print((i+1)+"\t\t");
13         System.out.println(scores[i]);
14         }
15             System.out.println("总金额:\t\t"+sum);

例3:循环录入5位学员成绩,进行升序排列后输出结果

 1 public static void main(String[] args) {
 2     Scanner input=new Scanner(System.in);
 3     int scores []=new int[5];
 4     System.out.println("请输入5位同学的成绩:");
 5     //录入成绩
 6     for (int i = 0; i < scores.length; i++) {
 7         scores[i]=input.nextInt();
 8     }
 9     Arrays.sort(scores);//排序
10     System.out.println("学员成绩按升序排序:");
11     for (int i = 0; i < scores.length; i++) {
12         System.out.println(scores [i]+" ");
13     }

例4:从键盘输入本次Java考试五位学生的成绩,求考试成绩最高分

 1 public static void main(String[] args) {
 2     Scanner input=new Scanner(System.in);
 3     int scores []=new int[5];
 4     int max=0;
 5     System.out.println("请输入5位同学的成绩:");
 6     //录入成绩
 7     for (int i = 0; i < scores.length; i++) {
 8         scores[i]=input.nextInt();
 9     }
10
11     for (int i = 0; i < scores.length; i++) {
12         if (scores[i]>max) {
13             max=scores[i];
14         }
15     }
16         System.out.println("最高分:"+max);
17     }

例5:有一组学员的成绩{99,85,82,63, 60},将它们按升序排列。要增加一个学员的成绩,将它插入成绩序列,并保持升序。

 1 public static void main(String[] args) {
 2     Scanner input=new Scanner(System.in);
 3            int [] list=new int [6];
 4            list[0]=99;
 5            list[1]=95;
 6            list[2]=92;
 7            list[3]=89;
 8            list[4]=69;
 9            list[5]=49;
10            int index=list.length;//保存新增成绩的位置
11            System.out.println("请输入新增成绩:");
12            int num=input.nextInt();//输入要插入的数据
13            //找到新元素插入的位置
14            for (int i = 0; i < list.length; i++) {
15
16                if (num>list[i]) {
17                 index=i;
18                 break;
19             }
20         }
21            //元素后移
22            for (int i =list.length-1 ; i >index ; i--) {
23         list[i]=list[i-1];//index下标开始的元素后移一个位置
24         }
25            list[index]=num;
26     System.out.println("插入成绩的下标:"+index);
27
28     System.out.println("插入后成绩信息是:");
29     for (int i = 0; i < list.length; i++) {
30         System.out.println(list[i]+"\t");
31     }
32     }

例6:将 一组乱序的字符进行排序 进行升序和逆序输出

 1 public static void main(String[] args) {
 2     Scanner input=new Scanner(System.in);
 3     String[]num=new String[]{"a","c","u","b","e","p","f","z"};
 4     System.out.print("原字符序列:");
 5     for (int i = 0; i < num.length; i++) {
 6         System.out.print(num[i]+" ");
 7     }
 8     Arrays.sort(num);
 9     System.out.println();//换行
10     System.out.print("升序排序后:");
11     for (int i = 0; i < num.length; i++) {
12         System.out.print(num[i]+" ");
13     }
14     System.out.println();//换行
15     System.out.print("逆序输出为:");
16     //逆序,则从最后的哪一个元素排在第一位
17     for (int i = num.length-1; i >=0 ; i--) {
18         System.out.print(num[i]+" ");
19     }

例7:求出4家店的最低手机价格及原始位置(下标)

 1 Scanner input=new Scanner(System.in);
 2      System.out.println("请输入4家店的价格");
 3        int[]num=new int[4];
 4        for (int i = 0; i < num.length; i++) {
 5                System.out.print("第"+(i+1)+"店的价格:");
 6                num[i]=input.nextInt();
 7            }
 8        int min=num[0];
 9         int index=0;
10            for (int j = 0; j < num.length; j++) {
11             if (num[j]<min) {
12                 min=num[j];
13                 index=j;
14             }
15
16            }
17            System.out.print("最低价格:"+min);
18            System.out.println("且它在数组中的原始位置(下标)是:" + index);
19         }
20     }

例8:从键盘上输出10个整数,合法值为1,2或3,其余为不合法,并且统计合法及不合法的个数

 1 Scanner input=new Scanner(System.in);
 2         int nums[] = new int[10];
 3         int a = 0;
 4         int b = 0;
 5         int c = 0;
 6         int d = 0;
 7         System.out.println("请输入10个数:");
 8         for (int i = 0; i < nums.length; i++) {
 9             nums[i] = input.nextInt();
10
11             switch (nums[i]) {
12             case 1:
13                 a++;
14                 break;
15             case 2:
16                 b++;
17                 break;
18             case 3:
19                 c++;
20                 break;
21             default:
22                 d++;
23                 break;
24             }
25
26         }
27         System.out.println("数字1的个数:"+a);
28         System.out.println("数字2的个数:"+b);
29         System.out.println("数字3的个数:"+c);
30         System.out.println("非法数字的个数:"+d);

例9:假设有一个数组,长度为5,int [] aray=new int[]{1,3,-1,5,-2},先创建一个新数组,要求新数组的存放顺序与原数组的元素逆序,并且如果原数组中的元素值小于0,在新数组中安0存储,

 1 Scanner input=new Scanner(System.in);
 2
 3     int []array=new int[]{1,3,-1,5,-2};
 4     System.out.println("原数组的为:");
 5     for (int i = 0; i < array.length; i++) {
 6         System.out.print(array[i]+ " ");
 7     }
 8     System.out.println();
 9       int newarray[]=new int[5];
10       for (int i = array.length - 1; i >= 0; i--) {
11             if (array[i] < 0) {
12                 continue;
13             }
14             if (array[i] > 0) {
15                 newarray[array.length - i - 1] = array[i];
16             }
17         }
18         System.out.println("");
19         System.out.println("逆序并处理后的数组为:");
20         for (int i = 0; i < newarray.length; i++) {
21             System.out.print(newarray[i]+" ");
22         }
23          }

例10:

 1 public static void main(String[] args) {
 2         Scanner input=new Scanner(System.in);
 3         String[] musics = new String[]{"Island","Ocean","Pretty","Sun"};
 4         int index = musics.length; //保存新歌插入位置
 5         //输出插入前的结果
 6         System.out.print("插入前的数组为:");
 7         for(int i = 0; i < musics.length ; i++){
 8         System.out.print(musics[i]+" ");
 9         }
10         //新数组
11         String[] newMusics = new String[musics.length+1];//新歌曲数组
12         String music = ""; //保存用户输入的歌曲名称
13           //将数组musics中的元素复制到新歌曲数组newMusics中
14         for(int i = 0; i < musics.length; i++){
15         newMusics[i] = musics[i];
16         }
17         //输入歌曲名称
18        System.out.print("\n请输入歌曲名称:");
19         music = input.nextLine();
20         //找到新元素的插入位置
21         for(int i = 0; i < musics.length; i++){
22         if(musics[i].compareToIgnoreCase(music) > 0){
23             index = i;
24         break;
25         }
26         }
27         //元素后移
28         for(int i = newMusics.length-1; i > index; i--){
29         newMusics[i] = newMusics[i-1]; //index下标开始的元素后移一个位置
30         }
31         newMusics[index] = music; //新元素放在index的位置 地址
32         System.out.print("逆序处理后的数组为:");
33         for (int i = 0; i < newMusics.length; i++) {
34             System.out.print(newMusics[index]+" " );
35         }
36
37         }
38
39     }
时间: 2024-12-17 10:57:09

经典例子彻解数组的相关文章

转:一个经典例子让你彻彻底底理解java回调机制

一个经典例子让你彻彻底底理解java回调机制 以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,看了人家说比较经典的回调方式: Class A实现接口CallBack callback——背景1class A中包含一个class B的引用b —

const经典例子小结

在看这个例子之前,可以先看看:详解C和C++中的const和const和static变量的存放位置这样将会对const有非常全面的了解和认识: 下面我们将通过下面的例子看看const的一些非常不易发觉的错误: #include<iostream> using namespace std; class String { public: friend ostream& operator<<(ostream& os,const String& str); Stri

小猪的数据结构辅助教程——2.5 经典例子:约瑟夫问题的解决

小猪的数据结构辅助教程--2.5 经典例子:约瑟夫问题的解决 标签(空格分隔): 数据结构 约瑟夫问题的解析 关于问题的故事背景就不提了,我们直接说这个问题的内容吧: 一堆人,围成一个圈,然后规定一个数N,然后依次报数,当报数到N,这个人自杀,其他人鼓掌!啪啪啪, 接着又从1开始报数,报到N又自杀-以此类推,直到死剩最后一个人,那么游戏结束! 这就是问题,而我们用计算机模拟的话,用户输入:N(参与人数),M(第几个人死),结果返回最后一个人! 类似的问题有跳海问题,猴子选王等,下面我们就以N =

机器学习经典算法详解及Python实现---朴素贝叶斯分类及其在文本分类、垃圾邮件检测中的应用

摘要: 朴素贝叶斯分类是贝叶斯分类器的一种,贝叶斯分类算法是统计学的一种分类方法,利用概率统计知识进行分类,其分类原理就是利用贝叶斯公式根据某对象的先验概率计算出其后验概率(即该对象属于某一类的概率),然后选择具有最大后验概率的类作为该对象所属的类.总的来说:当样本特征个数较多或者特征之间相关性较大时,朴素贝叶斯分类效率比不上决策树模型:当各特征相关性较小时,朴素贝叶斯分类性能最为良好.另外朴素贝叶斯的计算过程类条件概率等计算彼此是独立的,因此特别适于分布式计算.本文详述了朴素贝叶斯分类的统计学

python经典例子

http://wangwei007.blog.51cto.com/68019/1106735  检查Linux系统日志error和mysql错误日志的脚本 http://wangwei007.blog.51cto.com/68019/1102836  pickle http://wangwei007.blog.51cto.com/68019/1045577  python用zipfile模块打包文件或是目录.解压zip文件实例 http://blog.163.com/kefan_1987/blo

机器学习经典算法详解及Python实现--基于SMO的SVM分类器

原文:http://blog.csdn.net/suipingsp/article/details/41645779 支持向量机基本上是最好的有监督学习算法,因其英文名为support vector machine,简称SVM.通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解. (一)理解SVM基本原理 1,SVM的本质--分类 给定一些数据点,它们分别属于两个不同的类,现在要找到一个线性分类器把这些

经典面试题 之 数组的循环右移

经典面试题 之 数组的循环右移 题目的大意是将一个长度为n的数组A内的元素循环右移m位(当然左移也可以),比如数组 {1, 2, 3, 4, 5}右移3位之后就变成{3, 4, 5, 1, 2}. 这题最平凡的做法是开另一个大小一样的数组B,遍历一下,令B[(i + m) % n] = A[i],再将B的内容写回到A即可.这个方法的时间复杂度为O(N),空间复杂度也为O(N). 很明显,需要优化空间的使用.有一种很优美但不太好懂的方法,是先将A的元素倒置,即{1, 2, 3, 4, 5}变成{5

递归的几个经典例子

注意:构造方法不可递归,否则是无限创建对象; 递归的几个经典例子: 1.HannoiTower 1 import java.util.Scanner; 2 public class HanoiTower{ 3 //level代表盘子个数;三个char类型代表柱子 4 public static void moveDish(int level, char from, char inter, char to){ 5 if(level == 1){ 6 System.out.println("从&qu

jquery.dataTables插件使用例子详解

DataTables是一个jQuery的表格插件.这是一个高度灵活的工具,依据的基础逐步增强,这将增加先进的互动控制,支持任何HTML表格 效果图 代码 <!doctype html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>jquery.dataTables插件</title>     <link rel