题目描述
股市强烈动荡,有涨有跌。现在有一组数据表示各公司的涨跌(涨为正,跌为负,不动为零),要求统计出平均涨幅和平均跌幅。
输入
一组数,其中有正数,也有负数,还有0。输入的个数不定,另外,不会出现只有正数或只有负数的情况。
输出
第一行输出见涨的数目和遇跌的数目;
第二行输出平均涨幅(正数的平均数)和平均跌幅(负数的平均数,再取反),保留小数点后3位。
样例输入
5 0 -1 1.5 2.3 -0.3 2.4 0 7.9 -4.3
样例输出
5 3
3.820 1.867
【AC代码】:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
float x[] = new float[15];
int a = 0, b = 0;
int k = 0;
String ss = null;
float sum1 = 0, sum2 = 0;
int n1 = 0, n2 = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == ' ') {
b = i;
ss = s.substring(a, b);
a = b + 1;
x[k] = Float.parseFloat(ss);
if (x[k] > 0) {
n1++;
sum1 += x[k];
} else if (x[k] < 0) {
n2++;
sum2 += x[k];
}
k++;
}
}
x[k] = Float.parseFloat(s.substring(a, s.length()));
if (x[k] > 0) {
n1++;
sum1 += x[k];
} else if (x[k] < 0) {
n2++;
sum2 += x[k];
}
System.out.println(n1 + " " + n2);
System.out.printf("%.3f %.3f", sum1 / n1, -sum2 / n2);
}
}