1.(易)设计一个方法,找出一个数组中最大的数字,连同所在的下标一起输出。
public static int Maxnum(int[] arry){
int num=arry[0];
int temp=0;
for(int i=1;i<=arry.length-1;i++){
if(num<arry[i]){
num=arry[i];
temp=i;
}
}
System.out.println("最大数:"+num);
System.out.println("下标:"+temp);
return temp;
}
2.(中)设计一个方法,判断一个数组是不是一个升序的数组。
public static boolean ShengXu(int[] arr){
for(int i=0;i<arr.length-1;i++) {
if (arr[i] > arr[i + 1]) {
System.out.println("不是升序数组");
return false;
}
}
System.out.println("是升序数组");
return true;
}
3.(难)设计一个方法,找出一个整型数组中的第二大的值。
- 不可以通过排序实现,不能修改数组中的数据顺序
- 要考虑到最大的数字可能出现多次
public static int Second(int[] arr){
int max=arr[0];
int second=arr[0];
int count=0; //计算次数
//第二大的数比第一个小比其他任何一个都大
for(int i=0;i<arr.length;i++){
if(max<arr[i]){
second=max;
max=arr[i];
}else if(arr[i]>second&&arr[i]<max){
second=arr[i];
}
}
for(int i=0;i<arr.length;i++){
if(second==arr[i])
count++;
}
System.out.println(second);
return count;
}
4.(中)设计一个方法,将一个数组中的元素倒序排列(注意,不是降序)。
public static int[] Order(int[] arr){
int l=arr.length;
int[] arr1=new int[l];
for(int i=0;i<l;i++){
arr1[l-1-i]=arr[i];
}
for(int i:arr1)
System.out.print(i+" ");
return arr1;
}
5.(易)将一个数组中的元素拷贝到另外一个数组中。
public class Work5 {
public static void main(String[] args) {
int[] array = new int[]{1,2,3,4,5,6,7,8,9};
Copyarr(array);
}
public static int[] Copyarr(int[] arry){
int[] arr1=new int[arry.length];
for (int i = 0; i <= arry.length-1; i++) {
arr1[i]=arry[i];
}
for(int i:arr1)
System.out.print(i+" ");
return arr1;
}
}
6.(易)设计一个方法,比较两个数组中的元素是否相同(数量、每一个元素都相同,才认为是相同的数组)。
public static boolean Compare(int[] a,int[] b){
if(a.length!=b.length){
System.out.println("不是相同数组");
return false;
}
for(int i=0;i<a.length;i++) {
if (a[i] != b[i]) {
System.out.println("不是相同数组");
return false;
}
}
System.out.println("是相同数组");
return true;
}
7.(中)使用递归计算一个数组中的元素和。
public class Work7 {
public static void main(String[] args) {
int[] arr=new int[]{1,2,3,4,5,6,7,8,9,10};
System.out.println(Sum(arr,0));
}
public static int Sum(int[] arr,int i){
if(i==arr.length-1)
return arr[i];
else
return arr[i]+Sum(arr,i+1);
}
}
8.(易)小明参加歌手比赛,评委组给出10个成绩,去掉一个最高分,去掉一个最低分,求平均分
public class Work8 {
public static void main(String[] args) {
int[] sorce=new int[]{72,84,96,87,84,92,93,100,74,85};
System.out.println(Average(sorce));
}
//找出最高分
public static int MaxScore(int[] arr){
int maxscore=arr[0];
for(int i=1;i<arr.length;i++){
if(maxscore<arr[i])
maxscore=arr[i];
}
return maxscore;
}
//找出最低分
public static int MinScore(int[] arr){
int minscore=arr[0];
for(int i=1;i<arr.length;i++){
if(minscore>arr[i])
minscore=arr[i];
}
return minscore;
}
//求数组和
public static int Sum(int[] arr){
int sum=0;
for(int i=0;i<arr.length;i++){
sum+=arr[i];
}
return sum;
}
//去最大值最小值平均分
public static int Average(int[] arr){
int maxscore;
int minscore;
int score;
maxscore=MaxScore(arr);
minscore=MinScore(arr);
score=Sum(arr);
int average=(score-maxscore-minscore)/(arr.length-2);
return average;
}
}
1.实现方法:随机生成10个整数,存入数组
2.实现方法:求出数组中所有数的和
3.实现方法:求出数组中的最大值,第二大的值
4.实现方法:从大到小排序
import java.util.Random;
public class moring1 {
public static void main(String[] args) {
// 1.实现方法:随机生成10个整数,存入数组
int[] array = new int[10];
// 使用下标遍历数组
for (int i = 0; i < array.length; i++) {
int temp = (int)(Math.random()*100)+1;
array[i]=temp;
System.out.print(array[i]+" ");
}
System.out.println();
System.out.println("该数组和为:"+Sum(array,0));
System.out.println("该数组第二个最大的数为;"+Second(array));
Sort(array);
}
// 2.实现方法:求出数组中所有数的和
public static int Sum(int[] array,int i){
if(i==array.length-1)
return array[i];
else
return array[i]+Sum(array,i+1);
}
// 3.实现方法:求出数组中的最大值,第二大的值
public static int Second(int[] array){
int max=array[0];
int second=array[0];
for(int i=0;i<array.length;i++){
if(max<array[i]){
second=max;
max=array[i];
}else if(array[i]>second&&array[i]<max){
second=array[i];
}
}
return second;
}
// 4.实现方法:从大到小排序
public static int[] Sort(int[] arr){
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
System.out.print("排序后的数组:");
for(int i:arr)
System.out.print(i+" ");
return arr;
}
}
本文涵盖了一系列关于Java数组的编程题目,包括寻找数组中最大值及其下标、判断数组是否升序、找出第二大的值、数组元素倒序排列、元素拷贝、数组对比、递归计算数组和以及计算歌手比赛评分的平均分。题目难度从易到难,旨在提升Java数组处理能力。
1076

被折叠的 条评论
为什么被折叠?



