编程题AB-面粉质量差

编程题AB-面粉质量差

时间: 1ms        内存:128M

描述:

某粮店出售的三种品牌的面粉袋上,分别标有质量为(m1±e1)㎏,(m2±e2)㎏,(m3±e3)㎏的字样,从中任意拿出两袋,它们的质量最多相差多少?

输入:

 m1,e1,m2,e2,m3,e3(输入包含多组数据,每组一行)

输出:

最大质量差(结果保留一位小数)

示例输入:

5 0.1 10 0.2 15 0.3
10 0.9 10 0.5 10 0.6

示例输出:

10.4
1.8

提示:

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

#include<stdio.h>
int main()
{
    float a[9],b[9];
    int i,t;
    float max=0,min=100;
    while(scanf("%f%f",&a[1],&b[1])!=EOF)
    {
        max=0,min=100;
        for(i=2;i<=3;i++)
            scanf("%f%f",&a[i],&b[i]);
        for(i=1;i<=3;i++)
        {
            if(max<(a[i]+b[i]))max=(a[i]+b[i]);
            if(min>(a[i]-b[i]))min=(a[i]-b[i]);
        }
         printf("%.1f\n",max-min);

    }

    return 0;
}

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

#include <iostream>
#include <iomanip>
using namespace std;
#define N 6
int main()
{
    double flour[N];
    double m,e,tmp;
    int i,j;
    while(cin>>m>>e)
    {
        flour[0]=m+e;
        flour[1]=m-e;
        for(i=2; i<N; i+=2)
        {
            cin>>m>>e;
            flour[i]=m+e;
            flour[i+1]=m-e;
        }
        for(i=0; i<N-1; i++)
            for(j=0; j<N-1-i; j++)
            {
                if(flour[j]>flour[j+1])
                {
                    tmp=flour[j];
                    flour[j]=flour[j+1];
                    flour[j+1]=tmp;
                }
            }
        cout<<setiosflags(ios::fixed)<<setprecision(1);
        cout<<flour[N-1]-flour[0]<<endl;
    }
    return 0;
}

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

点赞

发表评论

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