##球球帮帮孩子看看8.11.13题哪里出错了(膜拜巨佬!

P2433 【深基1-2】小学数学 N 合一

Daaaaaaazai @ 2022-02-16 19:18:13


 #include <bits/stdc++.h> 
#include <cmath>
using namespace std;

int main() {
    int T;
    cin >> T;
    if (T == 1) {
        // 粘贴问题 1 的主函数代码,除了 return 0
        cout << "I love Luogu!";
    } else if (T == 2) {
        // 粘贴问题 2 的主函数代码,除了 return 0
        cout << 2 + 4 << " " << 10 - 2 - 4;
    } else if (T == 3) {
        // 请自行完成问题 3 的代码
        int a,b,c;
        a=14/4;
        b=4*a;
        c=14-b;
        cout<<a<<endl<<b<<endl<<c; 
    } else if (T == 4) {
        // 请自行完成问题 4 的代码
        double d;
        d=500.0/3.0;
        printf("%.3lf",d);
    } else if (T == 5) {
        // 请自行完成问题 5 的代码
        int e;
        e=(260+220)/(12+20);
        cout<<e<<endl;
    } else if (T == 6) {
        // 请自行完成问题 6 的代码
        double f;
        int g,h;
        g=pow(6,2);
        h=pow(9,2);
        f=sqrt(g+h);
        cout<<f<<endl;
    } else if (T == 7) {
        // 请自行完成问题 7 的代码#
        int i=100,i1,i2;
        i1=i+10;
        i2=i1-20;
        cout<<i1<<endl<<i2<<endl<<0;
    } else if (T == 8) {
        // 请自行完成问题 8 的代码#
        const double pi=3.141593;
        int j=5;
        double k,l,m;
        k=2*pi*j;
        l=pi*j*j;
        m=4/3*pi*j*j*j;
        cout<<k<<endl<<l<<endl<<m<<endl;
    } else if (T == 9) {
        // 请自行完成问题 9 的代码
        cout<<(((1+1)*2+1)*2+1)*2<<endl;
    } else if (T == 10) {
        // 请自行完成问题 10 的代码
        cout<<9;
    } else if (T == 11) {
        // 请自行完成问题 11 的代码#
        double n;
        n=100/13;
        cout<<n<<endl;
    } else if (T == 12) {
        // 请自行完成问题 12 的代码
        int o;
        o='M'-'A'+1;
        char p;
        p='A'+17;
        cout<<o<<endl<<p;
    } else if (T == 13) {
        // 请自行完成问题 13 的代码#
        const double pi=3.141593;
        int q=4,r=10,s,t,u,v;
        s=4/3*pi*q*q*q;
        t=4/3*pi*r*r*r;
        u=s+t;
        v=pow(u,1/3);
        cout<<v;
    } else if (T == 14) {
        // 请自行完成问题 14 的代码
        cout<<50;
    }
    return 0;
}

by ningago @ 2022-02-16 19:22:15

@某幻上野花

目测掉精度了

T=8的int改成double

把所有的整数(1 2 4 8 9 ...)改成浮点数(1.0 2.0 4.0 8.0 9.0 ...)


by Daaaaaaazai @ 2022-02-16 19:26:53

@ningago 谢谢巨佬!!!!

 const double pi=3.141593;
        int q=4,r=10,s,t,u,v;
        s=4/3*pi*q*q*q*1.0;
        t=4/3*pi*r*r*r*1.0;
        u=s+t;
        v=pow(u,1.0/3.0);
        cout<<v;

请问一下13这个问题是啥啊(阿里嘎多!!


by ningago @ 2022-02-16 19:45:55

@某幻上野花

你的程序:

s=4/3*pi*q*q*q*1.0;
t=4/3*pi*r*r*r*1.0;

输出14

标准:

s=pi*q*q*q*4/3*1.0;
t=pi*r*r*r*4/3*1.0;

输出16

又是精度掉了……


by Daaaaaaazai @ 2022-02-16 19:54:06

@ningago 谢谢谢谢!!!!


by gao0202 @ 2022-04-12 20:35:01

有时候遇到有小数点的题目,如果结果不正确,先查变量类型,如果像知道题答案固定,可以直接算出答案,再用cout输出答案


|