计算机小混子 2022-06-11 17:58 采纳率: 100%
浏览 20
已结题

b[0]溢出了问题在哪?

img

15、由一个已知一维数组派生出另一个一维数组的派生规则如下:新数组的每一元素等于原始数组的对应元素及其相邻两元素的平均值。其中第0个元素的左邻元素约定为最后一个元素,最后一个元素的右邻元素约定为第0个元素。假设原始数组为a[10],则b[0]=(a[9]+a[0]+a[1])/3,b[1]=(a[0]+a[1]+a[2])/3,b[2]=(a[1]+a[2]+a[3])/3,,b[9]=(a[8]+a[9]+a[0])/3。试建立一个实现此功能的类ARRAY。具体要求如下:
(1)私有数据成员
    float a[10],b[10];a存放原始数组,b存放派生数组。
(2)公有成员函数
    ARRAY(float t[10]):构造函数,初始化成员数组a;
    void process():由数组a根据上述派生规则,用循环语句计算数组b的各元素;
    void print():屏幕显示数组a和b。
(3)在主程序中对该类进行测试。使用测试数据{0,3,6,9,12,15,18,21,24,27}。

#include <iostream>
using namespace std;
class ARRAY
{
private:
    float a[10], b[10];
public:
    ARRAY(float t[10]);
    void process();
    void print();
};
ARRAY::ARRAY(float t[10])
{
    for (int i = 0; i < 10; i++)
    {
        a[i] = t[i];
    }
}
void ARRAY::process()
{
    for (int i = 0; i < 10; i++)
    {
        if (i == 0)
        {
            b[0] = (a[9] + a[0] + a[1]) / 3;
        }
        if (i == 9)
        {
            b[9] = (a[8] + a[9] + a[0]) / 3;
        }
        else
            b[i] = (a[i - 1] + a[i] + a[i + 1]) / 3;
    }
}
void ARRAY::print()
{
    for (int i = 0; i < 10; i++)
    {
        cout << a[i] << '\t';
    }
    cout << endl;
    for (int i = 0; i < 10; i++)
    {
        cout << b[i] << '\t';
    }
    cout << endl;
}
int main()
{
    float m[10] = { 0,3,6,9,12,15,18,21,24,27 };
    ARRAY arr(m);
    arr.process();
    arr.print();


    system("pause");
    return 0;

}
  • 写回答

1条回答 默认 最新

  • ...404 Not Found 2022-06-11 18:11
    关注

    else
    b[i] = (a[i - 1] + a[i] + a[i + 1]) / 3;
    a[i+1]越界

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月10日
  • 已采纳回答 7月2日
  • 创建了问题 6月11日

悬赏问题

  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答
  • ¥20 在本地部署CHATRWKV时遇到了AttributeError: 'str' object has no attribute 'requires_grad'