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

双层for循环无输出求助:随机测试中双重求和实现问题

问题分析与修复方案

核心问题:无限循环导致程序无法执行到输出逻辑

你的内层for循环条件写错了,把判断j < 6写成了i < 6:

for (int j = 0; i < 6; j++)  // 错误:这里应该是j < 6

这个错误会让内层循环永远不会终止——i在外层循环里从0到5,只要i < 6成立,内层循环就会一直执行j++,程序卡死在循环中,根本到不了后面的cout输出语句。

其他需要修复的问题

  • 整数除法导致B数组全为0:1 / 6这类表达式是整数除法,结果为0,需要改成浮点数除法才能得到正确的小数:
    float B[] = { 1.0f / 6, 5.0f / 24, 11.0f / 120, 19.0f / 720, 29.0f / 5040, 1.0f / 840 };
    
  • 确认变量定义:代码中使用的n和r数组需要确保已正确定义并初始化,比如n应该是一个合理的数值,r数组的元素要符合计算逻辑。

修复后的完整核心代码片段

int A[][6] = { {4529,9045,13568,18091,22615,2789},
                {9045,18097,27139,36187,45234,55789},
                {13568,27139,40721,54281,67825,83658},
                {18091,36187,54281,72414,90470,111580},
                {22615,45234,67852,90470,113262,139476},
                {27892,55789,83658,111580,139476,172860} };
float B[] = { 1.0f / 6, 5.0f / 24, 11.0f / 120, 19.0f / 720, 29.0f / 5040, 1.0f / 840 };

float R = 0, temp1 = 0, temp2, temp3;
// 修正内层循环条件
for (int i = 0; i < 6; i++) {
    for (int j = 0; j < 6; j++) {
        temp2 = r[i] - (n * B[i]);
        temp3 = r[j] - (n * B[j]);
        temp1 += (A[i][j] * temp2 * temp3);
    }
}
R = temp1 / n;
cout << "R= " << R;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:58:09