Mars3649278
2018-11-08 23:56
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { HelloWorld hello = new HelloWorld(); int[] rank = {89, -23, 64, 91, 119, 52, 73}; hello.getArrays(rank); }//定义方法完成成绩排序并输出前三名的功能 public int[] getArrays(int []rank) { int max3=rank[0]; int max2=rank[0]; int max1=rank[0]; int[] nums = {1, 2, 3}; for (int i = 0; i < rank.length-1; i++) { if (rank[i] > 1 && rank[i] < 100) { if (rank[0] < rank[i]) { max1 = rank[i]; } } } for (int i = 0; i < rank.length-1; i++) { if (rank[0] <rank[i]&&rank[i]<max1) { if (rank[i] > 1 && rank[i] < 100) { max2 =rank[i]; } } } for(int i=1;i<rank.length;i++){ if(rank[i]>rank[i]){ max3=rank[i]; } } nums[0]=max1;nums[1]=max2;nums[2]=max3; System.out.println(Arrays.toString(nums)); return nums; } }
然后输出的是91 89 89?
是减一
int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };
int max = nums[0]; // 假定最大值为数组中的第一个元素
int min = nums[0]; // 假定最小值为数组中的第一个元素
double sum = 0;// 累加值
double avg = 0;// 平均值
for (int i = 0; i <= nums.length-1; i++) { // 循环遍历数组中的元素
// 如果当前值大于max,则替换max的值
if(max<nums[i])
max=nums[i];
// 如果当前值小于min,则替换min的值
if(min>nums[i])
min=nums[i];
sum=sum+nums[i];
}
// 求平均值
avg=sum/nums.length;
System.out.println("数组中的最大值:" + max);
System.out.println("数组中的最小值:" + min);
System.out.println("数组中的平均值:" + avg);
length后面必须加一;
最易懂的冒泡排序
你可以使用Arrays.sort(数组名);来给数组排序(升序)
Arrays类是数组的实现类,里面提供了很多操作数组的方法,非常方便使用!有兴趣可以去了解一下。
如果想要用循环来给数组排序的话,必须要使用双重for循环哦,我所知道的有冒泡排序和选择排序两种,你可以在网上搜索,有很多博客都介绍了这两种排序方式的用法。
import java.util.Arrays; public class Demo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int scores[]={89,-23,64,91,119,52,73}; Demo mo=new Demo(); mo.sortScore(scores); } public void sortScore(int[] scores) { // TODO Auto-generated method stub Arrays.sort(scores); for(int i=scores.length-1,sum=0;i>=0&&sum<3;i--){ if(scores[i]<0||scores[i]>100) continue; System.out.println(scores[i]); sum++; } } }
Java入门第一季(IDEA工具)升级版
1165558 学习 · 17587 问题
相似问题