数组循环题

来源:互联网 发布:查看mysql端口号 编辑:程序博客网 时间:2024/06/06 04:44

1.     歌手打分: 
在歌唱比赛中,共有10位评委进行打分,在计算歌手得分时,去掉一个最高分,去掉一个最低分,然后剩余的8位评委的分数进行平均,就是该选手的最终得分。输入每个评委的评分,求某选手的得分。

 

public staticvoidmain(String[] args){

      double d[] = new double[10];

      double max = d[0],  sum = 0, t = 0;

      // 输入十次数,并求总和

      for (inta = 0; a < d.length; a++) {

         System.out.print("请输入一个分数");

         Scannerb= newScanner(System.in);

         d[a] =b.nextDouble();

         sum = sum + d[a];

      }

      System.out.println("总和是" +sum);

      // 最大值

      for (inte = 0; e < d.length; e++) {

         if (d[e] >max) {

            max = d[e];

         }

      }

      System.out.println("最大值" +max);

      // 最小值

      double min=d[0];

      for (inte = 0; e< d.length; e++) {

         if (min>d[e]) {

            min = d[e];

         }

      }

      System.out.println("最小值" +min);

      t = (sum -max - min) / 8;

      System.out.println("平均分是" +t);

2.     现在有如下一个数组: 
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}; 
要求将以上数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组为 
int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5};

 

 

   public static void main(String[] args) {

      int count=0;

      int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};

      for (inti = 0; i < oldArr.length; i++) {

         if (oldArr[i]==0) {

            count++;

         }

      }

      int newArr[]=new int[oldArr.length-count];

      int k=0;

      for(inta=0;a<oldArr.length;a++){

         if(oldArr[a]!=0){

         newArr[k]=oldArr[a];

         k++;

         }

      }

      for (intl = 0; l < newArr.length; l++) {

          System.out.print(newArr[l]+" ");

      }

3.     定义一个整型数组,保存10个数据,利用程序完成将最大值保存在数组中第一个元素,依次递减。

 

public staticvoidmain(String[] args){

       int a[]={1,2,3,4,5,6,7,8,9,10};

          inti,j,t;

          for(i=0;i<10;i++){

              for(j=0;j<10;j++)

              {

                  if (a[j]<a[i])

                  {

                      t=a[j];

                      a[j]=a[i];

                      a[i]=t;

                  }

              }

              //数组要循环遍历输出!!!

              //看你写的——>System.out.print(a[i]+"");

              //是这么写的????写哪去了????

          }

          for (intk = 0; k < a.length; k++) {

            System.out.print(a[k]+" ");

      }

4.     快速找出一个数组中的最大数、第二大数。

 

public staticvoidmain(String[] args){

      int a[]={13,765,324,8,767,65};

      int max=a[0],min=a[0];

      for(intb=0;b<a.length;b++){

         if(a[b]>max){

            max=a[b];

         }

      }

      System.out.println("最大值是"+max);

      for(intr=0;r<a.length;r++){

         if(min>a[r]){

            min=a[r];

         }

      }

      System.out.println("最小值是"+min);

5.     给定含有n个元素的整型数组a,其中包括0元素和非0元素,对数组进行排序,要求: 
1
、排序后所有0元素在前,所有非零元素在后,且非零元素排序前后相对位置不变 
2
、不能使用额外存储空间

 

   public static void main(String[] args) {

      int a[]={13,5,0,4,8,0,454,342,0,0,45,451,};

      for(intb=0;b<a.length;b++){

         if(a[b]==0){

            System.out.print(a[b]+" ");

         }

      }

      for(intb=0;b<a.length;b++){

         if(a[b]!=0){

            System.out.print(a[b]+" ");

         }

      }