扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
public class Max {
创新互联网站建设公司是一家服务多年做网站建设策划设计制作的公司,为广大用户提供了成都做网站、成都网站制作,成都网站设计,广告投放平台,成都做网站选创新互联,贴合企业需求,高性价比,满足客户不同层次的需求一站式服务欢迎致电。
public static void main(String[] args) {
int[] y= {0,9,4,8,2,12,444,5,-1,-22,45};
int max = m(y);
int min = mm(y);
System.out.println("最大值 "+max);
System.out.println("最小值 "+min);
System.out.println("差值 "+max-min);
}
public static int m(int[] p){
int max=0;
for (int i=0;ip.length;i++){
if(p[i]=max){
max=p[i];
}
}
return max;
}
public static int mm(int[] p){
int min=p[0];
for (int i=1;ip.length;i++){
if(p[i]=min){
min=p[i];
}
}
return min;
}
}
java中随便定义一个数组时,需要先排序之后,然后输出最大最小值,可以使用sort类进行排序,实例如下:
public class ArrDemo{ public static void main(String[] args){ new ArrDemo().getPrint(); } private int[] getPrint(){ java.util.Scanner sc = new java.util.Scanner(System.in); try{ System.out.println("请输入数组的个数。"); int[] arr = new int[sc.nextInt()]; for(int i = 0; i arr.length; i++){ System.out.println("请输入第"+(i+1)+"个数。"); arr[i] = sc.nextInt(); } getArr(arr); }catch(Exception e){ System.err.println("对不起,您输入的不是数字。"); } } private void getArr(int[] arr){ int sum = 0; java.util.Arrays.sort(arr); for(int i = 0;i arr.length; i++){ sum += arr[i]; } System.out.println("最大值是:"+arr[arr.length-1]); System.out.println("最小值是:"+arr[0]); System.out.println("和是:"+sum); }}
这里的难点在于记录数字的位置,因此我定义了一个类NumPosition.java,由数字和它的位置组成:
public class NumPosition {
private int num;
private int position;
public NumPosition(int num, int position) {
this.num = num;
this.position = position;
}
public int getNum() {
return num;
}
public int getPosition() {
return position;
}
}
然后在main函数中,首次遍历求和的时候,记录每一个数字的位置,之后排序后,就可以找到最大值和最小值的位置了:
public class Main {
public static void main(String[] args) {
int[] s = new int[]{3, 5, 2, 6, 54, 8, 9, 1, 4, 11};
NumPosition[] positions = new NumPosition[s.length];
int sum = 0;
for (int i = 0; i s.length; i++) {
sum += s[i];
positions[i] = new NumPosition(s[i], i);
}
System.out.println("一维数组中的数的和为:" + sum);
//jdk自带数组升序排序,也可以搜一下冒泡排序自己实现
Arrays.sort(s);
int min = s[0];//最小值 排序后第一个元素
int max = s[s.length - 1];//最大值 排序后最后一个元素
for (int i = 0; i positions.length; i++) {
if (positions[i].getNum() == min) {
System.out.println("数组中的最小的数为:[" + min + "],其位于数组的第[" + positions[i].getPosition() + "]位置");
}
if (positions[i].getNum() == max) {
System.out.println("数组中的最大的数为:[" + max + "],其位于数组的第[" + positions[i].getPosition() + "]位置");
}
}
}
}
运行结果:
这里位置是从0算起的,如果要从1算起就每个位置加1
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流