/**
* 写一个方法输入一个整型数组,要求打印出输入的数组所有元素之和,
* 并打印出最大值和最小值。
* */
package com.basic.erwei;
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
chuli();
}
public static void chuli(){
int arr[]=input();
int n=0;
//获取数组的有效长度
for (int i = 0; i < arr.length; i++) {
//获取数组中有用的元素
if(arr[i]!=0){
n++;
//System.out.print(arr[i]+" ");
}
}
//System.out.println();
int arr2[]=new int[n];
//将一个数组中的元素赋给另一个数组
for (int i = 0; i < arr2.length; i++) {
arr2[i]=arr[i];
System.out.print(arr2[i]+" ");
}
System.out.println();
System.out.println("输入的元素的个数 n="+n);
System.out.println("输入的数的和为:"+add(arr2));
System.out.println("数组中的最大值为:"+getMax(arr2));
System.out.println("数组中的最小值为:"+getMin(arr2));
}
//将输入的数存入到一个数组中
public static int[] input(){
int num,n = 0;
//没有动态数组,所以在声明和定义数组的时候,可以先自定义数组的长度,然后在数组中取出满足自己条件的元素,放到一个新数组中,然后对新数组进行操作。
int arr[]=new int[100];
Scanner sc=new Scanner(System.in);
System.out.println("请输入整数");
//用do{} while();循环,不管条件是否满足,do语句中的方法至少被执行一次
do{
num=sc.nextInt();
//如果不加这个判断条件,则数组中会存入-1这个值。
if(num!=-1)
arr[n]=num;
//记录输入数据的个数
n++;
}
//当输入的数据是-1的时候就结束输入的操作
while(num!=-1);
return arr;
}
//求取数组中元素的和
public static int add(int arr[]){
int sum=0;
for (int i = 0; i < arr.length; i++) {
sum+=arr[i];
}
return sum;
}
//获取数组中的最大值
public static int getMax(int arr[]){
int max=arr[0];
for (int i = 0; i < arr.length; i++) {
if(max<arr[i]){
max=arr[i];
}
}
return max;
}
//获取数组中的最小值
public static int getMin(int arr[]){
int min=arr[0];
for (int i = 0; i < arr.length; i++) {
if(min>arr[i]){
min=arr[i];
}
}
return min;
}
}
结果: