看一道改错题:
#include
#include
#include
proc(int k)//很显然根据主调函数和返回值类型知道这里缺少类型
{
int n;float s,w,p,q;
n=1;
s=1.0;
while(n<=k){
w=2.0*n;
p=w-1.0;
q=w+1.0;
s=s*w*w/p/q;
n++;
}
return s;
}
void main(){
system("CLS");
printf("%f\n",proc(20));
}
我觉得既然变量s是float型,就应该改成float proc(int k)。可是本题的答案确实这样子改的 double proc(int k)我想问答案这样改对吗?如果对道理是什么?
c语言中函数返回值类型的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 小邓在路上 2014-07-24 09:12关注
你的想法是没错,但是你要看你具体的函数的内部的操作啊 ,你的被调函数里面有一个语句是:s=s*w*w/p/q;
你能确定 计算完了这个s还在float 的范围内吗,为了防止数字的越界问题,返回值就设置成立double 就是为了安全的考虑。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器