import java.util.Scanner;
import static java.lang.Math.sqrt;
public class no_2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("输入数字,用“ ”隔开");
String st = sc.nextLine();
st=st.trim();
String [] arr = st.split(" ");
int[] shu = new int[1000];
int[] zshu = new int[1000];
int[] fshu = new int[1000];
int i;
int n=0 , m=0 , z = 0, zmax, zmin, fmax, fmin;
double aver;
double s;
double S=0;
for (i = 0; i < shu.length; i++) {
shu[i] = Integer.parseInt(arr[i]);
while( shu[i]!=0){
for (i = 0; i < shu.length; i++) {
if (shu[i] > 0) {
zshu[n] = shu[i]; //正数数组
n=n+1; //正数的个数
}
else if (shu[i] < 0) {
fshu[m] = shu[i]; //构造负数数组
m=m+1; //负数的个数
}
z += shu[i]; //和
}
}
}
aver = z / (m+n); //平均数
zmax = zmin = zshu[0];
fmax = fmin = fshu[0];
for (i = 0; i < n; i++) { //第(2)题
if (zshu[i] > zmax) zmax = zshu[i]; //最大正数
if (zshu[i] < zmin) zmin = zshu[i]; //最小正数
}
for (i = 0; i < m; i++) { //第(3)题
if (fshu[i] > fmax) fmax = fshu[i]; //最大负数
if (fshu[i] < fmin) fmin = fshu[i]; //最小负数
}
for (i = 0; i < shu.length; i++) { //第(5)题
s=sqrt(shu[i]-aver);
s=s*s*s*s;
S+=s;
}
S/=shu.length;
System.out.println("正数个数="+m);
System.out.print("\n 负数个数="+n);
System.out.print("\n 最大正数="+zmax);
System.out.print("\n 最小正数="+fmin);
System.out.print("\n 最大负数="+fmax);
System.out.print("\n 最小负数="+fmin);
System.out.print("\n 方差="+S);
}
}
就是IDEA上显示 m和n恒为0,挺头秃的,还求大佬帮帮忙
看: https://blog.csdn.net/weixin_44538399/article/details/89083619
System.out.println("正数个数="+m);
改为:
System.out.println("正数个数=", m);