问题标题: 酷町堂:4989

0
0
已解决
王俊杰
王俊杰
高级光能
高级光能

求值2经验值:400

题目描述 Description

输入n组数据,每组数据a,b,2个数,求m,m的求解格式如下:
image.png

输入描述 Input Description

第一行,一个整数n
接下来n行,每行2个整数a b

输出描述 Output Description

输出n行,每行一个值,为对应要求的m
(m保留2位小数)

样例输入 Sample Input

1 2 3

样例输出 Sample Output

1.20

数据范围及提示 Data Size & Hint

输出保留2位小数

https://newcourse.codingtang.com/#/problem/problemSub?show_id=0&id=4989

错误输出1.00的代码:

#include<iostream>

#include<string>

#include<cstdio>

using namespace std;

int main(){

    int n,a,b,k=0,sum=0,sum1=0,sum2=0;

    cin>>n;

    for(int i=1;i<=n;i++){

        cin>>a>>b;

        if(a>b){

            k=a;

        }

        if(b>a){

            k=b;

        }

    }

sum=a*k;

sum1=a+b;

sum2=sum/sum1;

printf("%.2f",sum2*1.0);

return 0;

}

我要改哪里,求大佬解答

王俊杰在2020-07-23 17:21:03追加了内容

有人吗,大佬们出来帮我解决一下题目吧


0
已采纳
张天璨
张天璨
新手天翼
新手天翼

    int a,b,n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a>>b;
        printf("%.2f\n",(a*max(a,b)*1.0)/(a+b));
    }
    return 0;

我是这么写的,样例过了,但是,是100分!

0
李显晨
李显晨
中级启示者
中级启示者
#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
#include<cmath>
using namespace std; 
int main(){
    double n,a,b;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a>>b;
        double sum=a*max(a,b)/(a+b);
        printf("%.2f\n",(int)(sum*100+0.5)/100.0);
    }
    return 0;
}

我是这么写的,样例过了,但是,是70分

0
邓涵睿
邓涵睿
中级天翼
中级天翼

我不知道,但我知道思路。

用a*max函数中的最大值,接着再/a+b的和。

望采纳

0
褚俊皓
褚俊皓
新手天翼
新手天翼

自定义函数,(变量全局)

0
张天璨
张天璨
新手天翼
新手天翼

I don'n now.我还没学到,本菜鸡帮不上忙了

0
曹砚青
曹砚青
中级光能
中级光能

整形定义 a,b,n;
    输入>>n;
    循环(int i=1;i<=n;i++)
    {
        输入>>a>>b;
        保留两位小数("%.2f\n",(a*max(a,b)*1.0)/(a+b));
    }
    返回 0;

0
余彦文
余彦文
初级光能
初级光能

错误一:你没见考虑a=b的情况(推荐用max函数)

错误二:是n组数据,你把输出、求值放在循环外面了

错误三:你只是粗略的将sum2转成了double型,但没有四舍五入

四舍五入:

sum=四舍五入的数,n=保留几位

printf("%.nf",(int)(sum*10^n+0.5)/double(10^n));

我要回答