问题标题: 我怎样错了?(1376)

0
0
已解决
王光裕
王光裕
资深光能
资深光能

#include<bits/stdc++.h>  
using namespace std;
int main ()
{
    double a;
    int b;
    cin>>a>>b;
    printf("%.1f",pow(a,b));
    return 0;
}                    


1
已采纳
王子轩
王子轩
新手光能
新手光能

我的方法是把

printf("%.1f",pow(a,b));

改成

printf("%.1f",pow(a,b)+0.005);

就过了

0
张国鉴
张国鉴
资深守护
资深守护
输出描述 Output Description
输出一个数,为a的b次方,并且对结果进行四舍五入保留一位小数输出。

请看题目,题目要求四舍五入保留1位小数

应将输出改为

printf("%.1f",(int)(pow(a,b)*10+0.5)/10.0);

 

0
谢祎恒
谢祎恒
中级守护
中级守护

题目说“并且对结果进行四舍五入保留一位小数输出”,你没有四舍五入,而且在使用pow时,如果结果超过一定数值,会使用科学计数法输出,所以要加上强制类型转换,转为int

0
我要回答