编程题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;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。