c++for代码循环之后数列内部分相应元素没有变化

img

img

img

img


上面这个里面的循环经过调试,会全部执行,但是arr数列里的数值除了第一个都没有变。整个程序是求顺序高斯消元法的


#include<iostream>
#include<iomanip>
#include<fstream>
using namespace std;
#define M 3
void SeqGs(double arr[M][M+1],int count)
{
    if (arr[count][count] == 0)
    {
        
        cout << "该矩阵无法适用顺序高斯法,截至目前计算结果如下" << endl;
        for (int i = 0; i < M; i++)
        {
            for (int j = 0; j < M + 1; j++)
            {
                cout << fixed << setprecision(4) << arr[i][j] << " ";
            }
            cout << endl;
            
        }
    }
    if (arr[count][count] != 0)
    {
        for (int i = 1; i < M - count; i++)
        {
            if (arr[count + i][count] != 0)
            {
                for (int j = 0; j < M+2; j++)
                {
                    arr[count + 1][j] = arr[count + 1][j] - arr[count + 1][count] / arr[count][count] * arr[count][j];
                }
            }
        }
    }
    for (int i2 = 0; i2 < M; i2++)
    {
        for (int j2 = 0; j2 < M + 1; j2++)
        {
            cout << fixed << setprecision(4) << arr[i2][j2] << " ";
        }
        cout << endl;
    }
    cout << endl;
    count++;
    if (count != M-1)
    {
        SeqGs(arr, count);
    }
}
void PivotGs(double arr[M][M+1],int count)
{

}
int main()
{
    int count=0,accept;
    double arr[M][M+1]=
    {
      {0.1,0.1,0.2,0.3},
      {1.0,1.1,1.2,1.3},
      {2.0,2.1,2.2,2.3},
    };
    /*for (int i1 = 0; i1 < M; i1++)                                  
    {
        for (int j1 = 0; j1 < M+1; j1++)
        {
            arr[i1][j1] = 0;
        }
    }  */                                                          //初始化数组
    /*for (int i0 = 0; i0 < M; i0++)
    {
        for (int j0 = 0; j0 < M+1; j0++)
        {
            cin>>arr[i0][j0];
        }
    }  */                                                         //输入数据
    cout << endl;
    SeqGs(arr,count);
    PivotGs(arr,count);
    return 0;
}

源码发一下