频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Java编程之数组使用示例2

来源:中国IT实验室 作者:佚名 出处:巧巧读书 2008-06-26 进入讨论组
下一页 1 2 
数组使用示例
             本部分通过一系列的示例,熟悉数组的基本语法,并演示一些使用数组可以解决的基本问题。
在实际使用数组时,数组的长度以及数组中每个元素存储的数据,都根据逻辑需要进行设计。
    1 循环初始化数组元素
             要求:初始化一个长度为100的int数组,数组中的元素依次为1-100。
             这是一个基本的使用,主要是熟悉数组的语法,在实际编写时,需要发现数组下标和数组元素值之间的规律即可。
             第一种思路:循环数组的下标0-99,则和下标对应的元素的值比数组下标多1。
             则实现代码如下:
                       int[] m = new int[100];
                       for(int i = 0;i < m.length;i++)
{
                                m[i] = i + 1;
                       }
             代码说明:声明并初始化一个长度是100的数组,使用循环循环数组的下标,下标的区间是[0,m.length-1],其中m.length表示数组的长度。在实际赋值时,把数组的下标做成变量,则当i的值为0时,则m[i]就是m[0],依次类推,按照题目的要求,则数值的规律是i+1,这样循环结束以后,数组m中的值就依次是1-100了。              第二种思路:循环数组的值1-100,则下标比数组的值下1。
             则实现的代码如下:
                       int[] m = new int[100];
                       for(int i = 1;i <= 100;i++)
{
                                m[i ?C 1] = i;
                       }
             该代码中循环变量i的值从1循环到100,则数组的下标是i ?C 1,这样也可以实现题目要求的功能。
    2输出数列
             要求:输出1 1 2 3 5 8 13……这样的数列,输出该数列的前20个数字。
             该题是一个基本的数字逻辑,在实际解决该问题时,首先要发现该数字的规律,然后按照该规律来设计数组即可。
             实现思路:数字的规律是除了数列里的前两个数字以外,其它的数字都满足该数字等于前两个数字的和,由于题目要求输出前20个数字,所以需要一个长度为20的数组,第一个和第二个数字直接赋值,后续的数字通过前两个数字元素得到。
             则实现的代码如下:
                       int[] num = new int[20];
                       num[0] = 1;
                       num[1] = 1;
                       //循环初始化
    for(int i = 2;i < num.length;i++)
{
                                num[i] = num[i ?C 1] + num[i ?C 2];
                       }
                       //循环输出
    for(int i = 0;i < num.length;i++)
{
                                system.out.print(num[i]);
                                system.out.print(‘ ‘);
                       }
                       system.out.println(); //换行
        在该代码中,初始化一个长度为20的数组,首先将数组中的前两个元素赋值成1,然后循环对后续的元素的赋值,如果当前元素的下标是i,则它前一个元素的下标是i-1,再前面一个元素的下标是i-2,只需要将这2个元素的值相加,然后赋值给当前元素即可。后面使用一个循环,输出数组中所有的元素,元素和元素之间有一个间隔的空格,在输出所有的元素以后换行。
   3 歌手打分
             要求:在歌唱比赛中,共有10位评委进行打分,在计算歌手得分时,去掉一个最高分,去掉一个最低分,然后剩余的8位评委的分数进行平均,就是该选手的最终得分。如果已知每个评委的评分,求该选手的得分。
             该题实际上涉及到求数组的最大值、最小值,以及求数组中所有元素的和,也是数组方便统计的用途体现。
             实现思路:求出数组元素的最大值、最小值以及和,然后使用和减去最大值和最小值,然后除以8获得得分。
             则实现的代码如下:
                       int[] score = {90,78,90,96,67,86,78,92,79,85}; //评委打分
                       int sum = 0;
        //存储和
                       int max =score[0];  //存储最大值
                       int min = score[0]; //存储最小值
                       //求和
                       for(int i = 0;i < score.length;i++){
                                sum += score[i];
                       }
                       //获得最大值
                       for(int i = 1;i < score.length;i++){
                                //比较
                                if(max < score[i]){
                                      max = score[i];
                                }
                       }
                       //获得最小值
                       for(int i = 1;i < score.length;i++){
                                //比较
                                if(min > score[i]){
                                      min = score[i];
                                }
                       }
                       //计算平均分
                       double avg = (sum ?C max ?C min)/8.0;
                       system.out.println(avg);
      在该代码中,实现数组求和的思路和以前的一样,就是每次加一个元素,然后用得到的结果再和后续的元素依次相加。求最大值的思路是首先假设第一个元素最大,把score[0]赋值给max,然后使用max的值和后续依次比较,如果后续的元素比max大,则把该值赋值给max,然后再和后续的元素比较,求最小值的思路和最大值的思路一样。然后计算平均分就完成了题目的要求。
             该代码虽然结构比较清晰,但是效率不高,为了追求效率,可以把以上三个循环合并起来,代码如下:                        for(int i = 0;i < score.length;i++)
{
                                sum += score[i]; //求和
                                //获得最大值
                                if(max < score[i])
{
                                      max = score[i];
                                }
                                //获得最小值
                                if(min > score[i])
{
                                      min = score[i];
                                }
                       }
             这样虽然在结构上稍微复杂了一些,但是效率得到了改善。在实际编写程序时,一般会在功能书写完成以后,对代码进行优化,提高程序的执行效率。 更多文章 更多内容请看Java环境安装配置Java编程开发手册Java的类专题,或进入讨论组讨论。
下一页 1 2 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章