曦字我会写 2022-05-11 17:50 采纳率: 100%
浏览 39
已结题

vc中因为数组定义顺序不同,执行结果也不同

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

#include <iostream>
using namespace std;

double newTon(double s, double x[], double y[], int n)
{

    double p = y[0], g, f;
    for (int i = 0; i < n; i++)
    {
        for (int j = n - 1; j > i; j--)
        {
            y[j] = (y[j] - y[j - 1]) / (x[j] - x[j - i - 1]); //动态规划
        }
        g = y[i + 1];
        for (int k = 0; k <= i; k++)
            g *= (s - x[k]);
        p += g;
    }
    return p;
}
int main()
{

    double y1[3] = {0.36789441, 0.135335283, 0.049787068};
    double x1[3] = {1, 2, 3};
    cout << newTon(2.6, x1, y1, 3) << endl;

    double x2[3] = {1, 2, 3};
    double y2[3] = {0.36789441, 0.135335283, 0.049787068};
    cout << newTon(2.6, x2, y2, 3) << endl;

    return 0;
}
运行结果及报错内容

0.066365
-0.317635

我的解答思路和尝试过的方法

在devc和vs里出来的两个答案是一样的,但在vc里是不同的

我想要达到的结果
  • 写回答

3条回答 默认 最新

  • togolife 2022-05-11 20:46
    关注
    
            g = y[i + 1];
    

    这里有访问越界

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月19日
  • 已采纳回答 5月11日
  • 创建了问题 5月11日

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料