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

C语言使用printf输出击球率时如何去除末尾多余的零

问题解决方法

你遇到的问题是C语言printf函数默认的浮点数输出规则导致的:%f格式符默认会输出6位小数,因此0.350会被打印为0.350000,才会出现末尾多余的三个零。

你只需要调整printf的浮点数格式说明符,指定保留3位小数即可,同时可以统一调整列宽参数,不需要给不同玩家设置不同的缩进值,修改后的打印代码如下:

//print rows of statistics
printf("%-13s%12.3f%6u%6u\n", player_1.player, player_1.bat_avg, player_1.hr, player_1.rbi);
printf("%-13s%12.3f%6u%6u\n", player_2.player, player_2.bat_avg, player_2.hr, player_2.rbi);
printf("%-13s%12.3f%6u%6u\n", player_3.player, player_3.bat_avg, player_3.hr, player_3.rbi);

格式说明符解释

  • %-13s:表示字符串左对齐,占13个字符宽度,刚好对应表头的「Player Name」列宽度
  • %12.3f:表示浮点数右对齐,总宽度占12个字符,仅保留3位小数,刚好对应「Batting Avg.」列的宽度
  • %6u:表示无符号整数右对齐,占6个字符宽度,对应表头的HR、RBI列宽度

修改后运行就能得到你期望的3位小数的击球率输出,且各列完全对齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:36:00