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

CS50 2021第4周模糊滤镜作业中间像素值计算错误求解

问题原因

你当前的代码缺失了颜色通道值计算时的四舍五入逻辑:C语言中整数除法默认是向零截断(直接舍弃小数部分),而CS50模糊滤镜的作业要求是将各通道的平均值四舍五入到最接近的整数,这就是你红色通道刚好差1的核心原因。
比如你当前场景下红色通道总和除以像素数的结果是126.888…,直接截断得到126,符合你的实际输出;而按要求四舍五入后应为127,匹配预期输出。

修复方案

修改通道值赋值的三行代码,使用(总和 + 计数/2) / 计数的整数运算技巧实现四舍五入即可:

temp[i][k].rgbtRed = (red + counted / 2) / counted;
temp[i][k].rgbtGreen = (green + counted / 2) / counted;
temp[i][k].rgbtBlue = (blue + counted / 2) / counted;

该改动修复后,3x3、4x4图像的模糊测试报错也会同步解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 07:36:07