Найти определитель матрицы - C (СИ) (77822)

Узнай цену своей работы

Формулировка задачи:

не могу понять в чем проблемма находит определитель для матрицы размером до 4*4, а 5*5 и 6*6 выкидает с программы вот мой фрагмент
{

    for(i=0;i<(n-1);i++)
    {       p=1;
        while(Tem[i+p][i]!=0||p<=n)
        {
            kof=Tem[i+p][i]/Tem[i][i];
            for(j=0;j<n;j++)
            {
                G=Tem[i][j]*kof;
                Tem[i+p][j]=Tem[i+p][j]-G;
 
            }
            p++;
        }
 
    }
    det=1;
    for(i=0;i<n;i++)
    det=Tem[i][i]*det;
    printf("determ%15.2f",det);
    getch(); 
}
Подскажите что я не так делаю

Решение задачи: «Найти определитель матрицы»

textual
Листинг программы
while(p + i < n && Tem[i+p][i] != 0)

Объяснение кода листинга программы

  1. Объявлены переменные: n (размер матрицы), p (порядок элемента для проверки), i (порядок элемента для прохода по матрице), Tem (матрица, для которой нужно найти определитель).
  2. Задано начальное значение p равное 0.
  3. Запущен цикл while, который будет выполняться до тех пор, пока значение p + i меньше n и значение элемента матрицы Tem[i+p][i] не равно 0.
  4. Внутри цикла происходит проверка условия: если значение Tem[i+p][i] не равно 0, то цикл продолжается, иначе цикл завершается.
  5. После завершения цикла, значение p увеличивается на 1 и цикл начинается заново.
  6. После завершения цикла, значение p будет равно n - 1, что означает, что цикл проверил все элементы матрицы.
  7. Результатом выполнения цикла будет определитель матрицы Tem.

Оцени полезность:

15   голосов , оценка 4.267 из 5
Похожие ответы