Почему изменяется массив(первый элемент)?

Не понимаю почему происходит перезапись первого элемента в массиве B

Код:
// Method run
#include "stdafx.h"
#include "iostream"
#include <iomanip>

using namespace std;

void main()
{
	int i, j, k;
	const int N = 5;
	float X[N], T[N][N + 1], y;

	float A[N][N] =
	{
		2, -1, 0, 0, 0,
		-3, 8, -1, 0, 0,
		0, -5, 12, 2, 0,
		0, 0, -6, 18, -4,
		0, 0, 0, -5, 10
	};

	float B[N] =
	{
		-25, 72, -69, -156, 20
	};

	// Print SLAU and init extended matrix T[N][N + 1]
	for (int i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			k = j;
			T[i][j] = A[i][j];
			cout << std::setw(4) << std::right << A[i][j];
		}
		T[i][k + 1] = B[i];
		cout << "  =  " << B[i] << "\n";
	}

	// Method
	A[0][1] = -(A[0][1] / A[0][0]);
	B[0] = B[0] / A[0][0];

	for (i = 1; i < N; i++)
	{
		y = A[i][i] + A[i][i - 1] * A[i - 1][i];
		A[i][i + 1] = -(A[i][i + 1] / y);
		B[i] = ( B[i] - A[i][i - 1] * B[i - 1] ) / y;
	}

	X[N - 1] = B[N - 1];

	for (i = N - 1; i > 0; i--)
	{
		X[i - 1] = A[i - 1][i] * X[i] + B[i - 1];
	}

	// Print parameters Xn
	cout << "\n";
	for (int i = 0; i < N; i++)
	{
		cout << "X[" << i + 1 << "] = ";
		printf("%.3f\n", X[i]);
	}
	cout << "\n";
}


Скрины при дебаггинге:
5db9b4a4c38cc736136927.jpeg
5db9b492dde69809719941.jpeg
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
@yevgenyyakushov Автор вопроса
Вопрос снимается, решил проблему, был выход за массив A, и по-этому автоматически запись была в массив B, но ошибку не выдавал
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы