测试5WA,思路正确,(double or float?)
查看原帖
测试5WA,思路正确,(double or float?)
354730
MagicKong楼主2020/6/30 22:11

以下是我编写的3个方案

  1. 为什么方案二的输出和方案一不同?
  2. 为什么方案三的输出是 0.0

先谢过各位大佬指教

方案一

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
/*
in: 888.88 888.88 888.88
out: 342126.7
result: AC
*/
int main() {
    double a,b,c,p,s;
    cin >> a >> b >> c;
    p = 0.5*(a+b+c);
    s = sqrt(p*(p-a)*(p-b)*(p-c));
    cout << fixed << setprecision(1) << s;
    return 0;
}

方案2

#include <cstdio>
#include <cmath>
/*
in: 888.88 888.88 888.88
out: 342126.8
result: WA
*/
int main() {
    float a,b,c,p,s;
    scanf("%f%f%f", &a,&b,&c);
    p = 0.5*(a+b+c);
    s = sqrt(p*(p-a)*(p-b)*(p-c));
    printf("%.1f", s);
    return 0;
}

方案3

#include <cstdio>
#include <cmath>
/*
in: 888.88 888.88 888.88
out: 0.0
result: WA
*/
int main() {
    double a,b,c,p,s;
    scanf("%f%f%f", &a,&b,&c);
    p = 0.5*(a+b+c);
    s = sqrt(p*(p-a)*(p-b)*(p-c));
    printf("%.1lf", s);
    return 0;
}
2020/6/30 22:11
加载中...