内存:128  时间:1

题目描述

股市强烈动荡,有涨有跌。现在有一组数据表示各公司的涨跌(涨为正,跌为负,不动为零),要求统计出平均涨幅和平均跌幅。

输入

一组数,其中有正数,也有负数,还有0。输入的个数不定,另外,不会出现只有正数或只有负数的情况。

输出

第一行输出见涨的数目和遇跌的数目;

第二行输出平均涨幅(正数的平均数)和平均跌幅(负数的平均数,再取反),保留小数点后3位。

样例输入

5 0 -1 1.5 2.3 -0.3 2.4 0 7.9 -4.3

样例输出

5 3
3.820 1.867

提示

(1)用于处理不定数目的输入,参考:

int main()

{

    int a,b;

    while(cin >>a)

    {

        cout << a << endl;

    }

    return 0;

}

(2)输出x的值,保留两位小数,用:
cout<<setiosflags(ios::fixed)<<setprecision(3)<<x<<endl;

代码如下

//import java.io.*;
import java.util.*;
import java.text.DecimalFormat;
public class Main
{
    public static void main(String args[]) throws Exception
    {   
        DecimalFormat df = new DecimalFormat("#.000");
        Scanner cin = new Scanner(System.in);
        int i;
        double sum1 = 0,sum2 = 0;
        int num1=0,num2=0;
        while(cin.hasNext()){
            double x = cin.nextDouble();
            if(x>0){
                sum1 += x;
                num1 ++;
            }
            else if(x<0){
                sum2 += x;
                num2 ++;
            }
        }
        System.out.println(num1+" "+num2);
        System.out.println(df.format(sum1/num1)+" "+df.format(-sum2/num2));
        
    }  
}

代码来源于互联网,仅供参考!