搜索
查看: 568|回复: 7
打印 上一主题 下一主题

挑战《圆相关计算》提示答案错误

[复制链接]
跳转到指定楼层
楼主
 楼主| 发表于 2018-6-13 11:03:49 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
标题:圆相关的计算

详情:给出圆的半径,求圆的直径、周长和面积。如果圆的半径是r,那么圆的直径、周长、面积分别是2*r、2 * pi * r、pi * r * r,其中约定pi=3.14159。
输入格式:输入包含一个小数r(0 < r <= 10,000),表示圆的半径。
输出格式:输出一行,包含三个数,分别表示圆的直径、周长、面积,数与数之间以一个空格分开,每个数保留小数点后4位。
样例:
输入
3.0

输出
6.0000 18.8495 28.2743

我的代码如下:
  1. #include <stdio.h>

  2. int main(int argc, char *argv[])
  3. {
  4.     float r;
  5.     float pi=3.14159;
  6.     scanf("%f",&r);
  7.     printf("%.4f %.4f %.4f\n",2.0*r,2.0*pi*r,pi*r*r);
  8.     return 0;
  9. }
复制代码
请问哪里出错了?

最佳答案

查看完整内容

用啊哈C试了没毛病 你改成double试试
沙发
发表于 2018-6-13 11:03:50 | 只看该作者
用啊哈C试了没毛病 你改成double试试
板凳
 楼主| 发表于 2018-6-19 16:21:08 | 只看该作者
zyx6680599 发表于 2018-6-13 19:30
用啊哈C试了没毛病 你改成double试试

这是啊哈挑战1015号题目,我将代码提交后系统提示答案错误。但我用TCC以及你用啊哈C运行后都得到正确结果,所以我不清楚到底是哪里出问题了,按你的意见改成double后依然提示答案错误。还有个奇怪的地方,这个题的正确率居然只有54.64%!!!

2018-06-19_看图王.png (66.54 KB, 下载次数: 2)

2018-06-19_看图王.png
地板
发表于 2018-7-8 14:58:40 | 只看该作者
我也错了
=================/test_1.out
Right:
64
-----------------
Your:
44
###############################################################################
=================/test_2.out
Right:
4078
-----------------
Your:
2500
###############################################################################
Source:
?
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>
int main()
{
    float r,d,s,c;
    scanf("%f",&r);
    d=2*r;
    s=3.14159*r*r;
    c=2*3.14159*r;
    printf("%.4f %.4f %.4f",d,c,s);
    return 0;
}
5#
发表于 2018-7-8 14:59:37 | 只看该作者
Smallbee 发表于 2018-6-19 16:21
这是啊哈挑战1015号题目,我将代码提交后系统提示答案错误。但我用TCC以及你用啊哈C运行后都得到正确结果 ...

那54%的人是怎么做到的

点评

用 double 吧……  发表于 2018-7-8 15:33
6#
 楼主| 发表于 2018-7-10 18:01:56 | 只看该作者
唉,用Python就正确了。为什么?
  1. pi=3.14159
  2. r=input()
  3. print('%.4f %.4f %.4f' % (2.0*r, 2.0*pi*r, pi*r*r))
复制代码
7#
 楼主| 发表于 2018-7-11 09:21:38 | 只看该作者
兄主的仙人掌 发表于 2018-7-8 14:59
那54%的人是怎么做到的

原来是这样:
  1. #include <stdio.h>
  2. main()
  3. {
  4.     double r,pi=3.14159;
  5.     scanf("%lf",&r);
  6.     printf("%.4f %.4f %.4f",2.0*r,2.0*pi*r,pi*r*r);
  7. }
复制代码
也许是考虑到关于圆的计算精度要求较高,所以要用“double”型数据吧(注意读入时使用“lf”参数)。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表