You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言编写员工薪资调整算法运行总返回0且报错如何解决?

问题原因
  • 核心错误在第14行的printf语句:你给%f格式化符传入了&readjustedSalary,这里的&是C语言的取地址运算符,实际传入的是readjustedSalary变量的内存地址,不是变量里存储的薪资计算结果。
  • 编译器给出的警告已经明确了类型不匹配问题:%f期望接收float/double类型的数值参数,你传入的是float *(浮点型指针,即内存地址)类型的参数,程序运行时会把地址值错误解析为浮点数,所以才会输出0。
修复方法

直接删除printf参数里readjustedSalary前面的&即可,修改后代码行如下:

printf("Readjusted salary: %f", readjustedSalary);

补充说明:初学者很容易搞混scanf和printf的参数要求,scanf需要传入变量地址才能把输入的值写入对应内存,所以参数要加&;而printf只需要读取变量的数值,不需要加取地址符。

内容的提问来源于stack exchange,提问作者Lucas Moro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:24:01