关闭

java基础2--数组与方法(几道练习题)

标签: javastringclass语言
8018人阅读 评论(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 class Test4_3{
 public static void main(String[] args){
    int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
     int n=0;
  for(int i=0;i<oldArr.length;i++){
     if(oldArr[i]!=0){
     n++;
    }
  }
  int newArr[]=new int[n];
  n=0;
  for(int i=0;i<oldArr.length;i++){
   if(oldArr[i]!=0){
    newArr[n]=oldArr[i];
    n++;
   }
  }
  for(int i=0;i<newArr.length;i++){
   System.out.print(newArr[i]+"/t");
  }
 }
}

 

 

四、

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


public class Test4_4{
 public static void main(String[] args){
  int arr[]={78,64,35,92,48,98,87,94,80,83};
  rankArr(arr);
 }
 public static void rankArr(int temp[]){
  for(int i=1;i<temp.length;i++){
   System.out.print("第"+i+"次排序时:");
   for(int j=0;j<temp.length;j++){
    if(temp[j]<temp[i]){
     int x=temp[j];
     temp[j]=temp[i];
     temp[i]=x;
    }
   }
   for(int e=0;e<temp.length;e++){
     System.out.print(temp[e]+"、");
   }
   System.out.println();
   }
 }
}

 

每次交换数据后,都输出了所有数组元素,可以观察到元素间的数据交换。

 

五、

//定义一个整型数组,求出数组元素的和、数组元素的最大值和最小值,并输出所求的结果。

public class Test4_5{
 public static void main(String[] args){
  int arry[] = new int[10];
  assignArry(arry);             
  prin(sumArry(arry),maxArry(arry),minArry(arry));
  prin(arry);
 }
 
 //为数组赋值函数
 public static void assignArry(int temp1[]){
  for(int i=0;i<temp1.length;i++){
   temp1[i] = i*2+1;
  }
 }
   
 //为数组求和函数
 public static int sumArry(int temp2[]){
  int sum = 0;
  for(int i=0;i<temp2.length;i++){
   sum += temp2[i];
  }
  return sum;
 }
   
 //为数组求最大值函数
 public static int maxArry(int temp3[]){
  int max = 0;
  for(int i=1;i<temp3.length;i++){
   max = temp3[0]>temp3[i] ? temp3[0] : temp3[i];
  }
  return max;
 }
 
 //为数组求最小值函数
 public static int minArry(int temp4[]){
  int min = 0;
  for(int i=1;i<temp4.length;i++){
   min = temp4[0]<temp4[i] ? temp4[0] : temp4[i];
  }
  return min;
 }

 //数组输出函数
 public static void prin(int sum,int max,int min){
  System.out.println("数组中元素的和为:"+sum
       +"/n数组中最大值是:"+max
       +"/n数组中最小值是:"+min);
 }
 public static void prin(int arry[]){
  System.out.print("显示所有数组元素: ");
  for(int i=0;i<arry.length;i++){
   System.out.print(arry[i]+" "); 
  }
 }
}

 

自己写的函数,用于输出数组的最大,最小,和为数组赋值,某些函数JAVA肯定有,只是手动多写写,对自己熟悉语言有好处。

 

/*定义一个包含10个元素的数组,对其进行赋值,使每个元素的值等于其下标,
 然后输出,最后将数组倒置后输出*/

public class Test4_6{
 public static void main(String[] args){
  int array[]=new int[10];
  arrayAssignment(array);
  prin(array);
  inveArray(array);
  prin(array);
 }

 //函数:为数组赋值,使其元素值等于其下标
 public static void arrayAssignment(int temp[]){
  for(int i=0;i<temp.length;i++){
   temp[i]=i;
  }
 }

 //函数:倒置数组元素
 public static void inveArray(int temp[]){
  int tempArray[]=new int[temp.length];  //定义一个临时数组来存放倒置的数据
  int j=temp.length-1;                   //临时数组的下标
  for(int i=0;i<temp.length;i++){
   tempArray[j] = temp[i];
   j--;
  }
  for(int i=0;i<temp.length;i++){
   temp[i]=tempArray[i];
  }
 }

 //函数:输出数组
  public static void prin(int temp1[]){
  for(int i=0;i<temp1.length;i++){
   System.out.print(temp1[i]+" "); 
  }
  System.out.println();
  }
}

 

今天听了张孝祥老师的 黑马训练营准备课程,很受鼓舞,虽然自己的学历和英语应该达不到7K的月薪,但我还是很有信心自己通过努力可以进入程序员的行列。千里之行,始于足下,总有一天会达到要求!

1
1

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:34659次
    • 积分:521
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:0篇
    • 译文:0篇
    • 评论:11条
    文章存档