第6小题

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

苏晨阳 @ 2023-08-31 17:21:55

此处似乎不严谨

printf("%lf\n", sqrt(117));
printf("%f\n", sqrt(117));
cout<<sqrt(117);

三种方式输出的值分别为

10.816654
10.816654
10.8167

题目没有规定保留多少位小数,同时只有cout可以ac这个点(使用的编译器为Dev-C++ 5.11)


by EricWan @ 2023-08-31 17:25:52

赞成,这应该改,另外请求将底下代码框的语言改为“cpp”。


by One_JuRuo @ 2023-08-31 17:27:32

@苏晨阳 大概是因为给水平较低的选手出的,可能是考虑到他们不太会用 printf?相同的数据用 cout 输出是一样的,而且这样出题不是减少你的麻烦吗?


by 苏晨阳 @ 2023-09-01 08:38:55

@One_JuRuo 虽说是这样,不过毕竟是不严谨awa


by One_JuRuo @ 2023-09-01 08:40:12

@苏晨阳 cout 有自己的精度,也不能说不严谨吧,而且题目也说得明明白白,我觉得不能算是不严谨。


by 苏晨阳 @ 2023-09-01 08:40:22

@One_JuRuo 而且从编译器上的输出来看,printf和cout输出保留的小数位数不同,也就导致有一个测试点只有cout能ac。。。


by One_JuRuo @ 2023-09-01 08:41:56

@苏晨阳 题目的要求啊,你不对是因为没按照题目的要求输出啊,有什么不严谨的?


by One_JuRuo @ 2023-09-01 08:47:22

题目没说,但是默认的 cout 是有精度的,所以这里默认的是6位精度,比如:123.22222222 就会输出123.222,1.1234124 就会输出1.12341


by 苏晨阳 @ 2023-09-01 09:00:01

awa,只能说用printf习惯了,确实没注意


|