The first thing:
allocate storage for all arrays:
int NumEquations=3;
// Equation Holder...
float ** EquationHolder= new float *[3];
for (int i=0; i<NumEquations; i++)
{
EquationHolder[ i] = new float[3];
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cout<<"Please Enter The Information Of Equation ("<<i+1<<")...\n";
for (int j=0; j<NumEquations; j++)
{
cout<<"X"<<j+1<<": ";
cin>>EquationHolder[i][j];
}
}
Additionally there were errors in main procedure:
#include <iostream>
using namespace std;
void GaussSeidel(int Iterations, float **EquationHolder,
float *EquationResultHolder) {
int InitialGuess = 0;
float x1 = 0, x2 = 0, x3 = 0;
while (InitialGuess < Iterations) {
x1 = (1 / EquationHolder[0][0])* (EquationResultHolder[0]-
((EquationHolder[0][1]) * x2)-((EquationHolder[0][2]) * x3));
x2 = (1 / EquationHolder[1][1])*(EquationResultHolder[1]-
((EquationHolder[1][0]) * x1)-((EquationHolder[1][2]) * x3));
x3 = (1 / EquationHolder[2][2])*((EquationResultHolder[2]-
((EquationHolder[2][0]) * x1)-((EquationHolder[2][1]) * x2)));
InitialGuess += 1;
cout << "---------------------Iteration #" << InitialGuess
<< "---------------------" << std::endl;
cout << "X1: " << x1 << "\t" << x2 << "\t" << x3 << std::endl;
}
}
usage:
int main() {
int NumEquations = 3;
// Equation Holder...
float ** EquationHolder = new float *[3];
for (int i = 0; i < NumEquations; i++) {
EquationHolder[ i] = new float[3];
cout << "Please Enter The Information Of Equation(" << i + 1 << ")...\n";
for (int j = 0; j < NumEquations; j++) {
cout << "X" << j + 1 << ": ";
cin >> EquationHolder[i][j];
}
}
//... as before
for ( int i = 0; i < NumEquations; i++) { // deallocate storage
delete [] EquationHolder[ i];
}
delete [] EquationHolder;
return 0;
}
output:
(...)
Please Enter The Required Iterations: 9
---------------------Iteration #1---------------------
X1: 4 -2 1.42857
---------------------Iteration #2---------------------
X1: 4.14286 -2.83333 2.10204
(...)
---------------------Iteration #9---------------------
X1: 3.81631 -3.03054 2.36438