Lỗi "... has triggered a breakpoint." trong C++

  • Em có một bài tập là cho nhập 2 đa thức, và tính tổng 2 đa thức đó, xuất ra màn hình kết quả. Em làm bài thì nó hiện lỗi “DaThucMotBienBac_n.exe has triggered a breakpoint.” và bảng No Symbols Loaded nhưng không biết sai ở đâu.
  • Ý tưởng của là đa thức gồm bậc lớn nhất và mảng hệ số của nó.
  • Em nghĩ là sai ở phần operator+ vì nhập xuất đa thức mảng đúng.
    Các bác giúp em với ạ. Em cảm ơn.
  • DaThuc.h :
#pragma once
#include <iostream>
using namespace std;
class DaThuc
{
private:
	int n; //bac lon nhat
	float* array; //mang he so
public:
	DaThuc()
	{
		this->n = 0;
		this->array = NULL;
	}
	DaThuc(DaThuc& dt)
	{
		this->n = dt.n;
		this->array = new float[this->n+1];
		for (int i = 0; i <= this->n; i++)
		{
			this->array[i] = dt.array[i];
		}
	}
	~DaThuc()
	{
		delete[]array;
	}
	void Nhap();
	void Xuat();
	friend DaThuc operator+(DaThuc fx1, DaThuc fx2);
};
  • DaThuc.cpp :
#include "DaThuc.h"

void DaThuc::Nhap()
{
	cout << "Nhap bac lon nhat cua da thuc : ";
	cin >> this->n;
	cout << "Nhap mang he so : ";
	this->array = new float[this->n+1];
	for (int i = this->n; i >=0; i--)
	{
		cin >> this->array[i];
	}

}
void DaThuc::Xuat()
{
	cout << "f(x) = ";
	for (int i = this->n; i >= 0; i--)
	{
		if (i == this->n)
		{
			cout << this->array[i] << "x^" << i;
		}
		else
		{
			if (this->array[i] >= 0)
			{
				cout << " + " << this->array[i] << "x^" << i;
			}
			else
			{
				if (this->array[i] < 0)
				{
					cout << " - " << abs(this->array[i]) << "x^" << i;
				}
			}
		}
	}
	cout << endl;
}

DaThuc operator+(DaThuc fx1, DaThuc fx2)
{
	DaThuc fx;
	if (fx1.n >= fx2.n)
	{
		fx.n = fx1.n;
		fx.array = new float[fx.n+1];
		for (int i = fx1.n; i > fx2.n ; i--)
		{
			fx.array[i] = fx1.array[i];
		}
		for (int i = fx2.n; i >= 0; i--)
		{
			fx.array[i] = fx1.array[i] + fx2.array[i];
		}
		return fx;
	}
	else
	{
		fx.n = fx2.n;
		fx.array = new float[fx.n+1];
		for (int i = fx2.n; i > fx1.n; i--)
		{
			fx.array[i] = fx2.array[i];
		}
		for (int i = fx1.n; i >= 0; i--)
		{
			fx.array[i] = fx1.array[i] + fx2.array[i];
		}
		return fx;
	}
}
  • main.cpp :

int main()
{
	DaThuc fx, fx1, fx2;
	fx1.Nhap();
	fx2.Nhap();
	//fx1.Xuat();
	//fx2.Xuat();
	fx = fx1 + fx2;
	fx.Xuat();
	return 0;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?