股市风云

股市风云

时间: 1ms        内存:128M

描述:

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

输入:

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

输出:

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

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

示例输入:

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

示例输出:

5 3
3.820 1.867

提示:

参考答案(内存最优[748]):

#include<stdio.h>
int main()
{

	double Lsum=0.0,Hsum=0.0;
	int Lnum=0,Hnum=0;
	double temp1;
	while(scanf("%lf",&temp1)!=EOF)
	{
		if(temp1>0)
		{
			Hnum++;
			Hsum+=temp1;
			
		}
		else if(temp1<0)
		{
			Lnum++;
			Lsum+=temp1;
		}
	}
	printf("%d %d\n",Hnum,Lnum);
	printf("%.3lf %.3lf\n",Hsum/Hnum,(0-Lsum)/Lnum);
	return 0;
}

参考答案(时间最优[0]):

#include <iostream>
#include<cstdio>
#include <iomanip>
using namespace std;
int main()
{
    int c_inc=0, c_dec=0;  //涨的个数和跌的个数
    //freopen("input.txt","r",stdin);
    double v, s_inc=0, s_dec=0;  //用于涨跌值和用于求和的变量
    while(cin>>v)
    {
        if(v>0)
        {
            s_inc+=v;
            c_inc++;
        }
        else if(v<0)
        {
            s_dec+=v;
            c_dec++;
        }
    }
    cout<<c_inc<<" "<<c_dec<<endl;
    cout<<setiosflags(ios::fixed)<<setprecision(3)<<(s_inc/c_inc)<<" "<<(-s_dec/c_dec)<<endl;
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注