Найти определитель матрицы - 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)
Объяснение кода листинга программы
- Объявлены переменные:
n
(размер матрицы),p
(порядок элемента для проверки),i
(порядок элемента для прохода по матрице),Tem
(матрица, для которой нужно найти определитель). - Задано начальное значение
p
равное 0. - Запущен цикл while, который будет выполняться до тех пор, пока значение
p + i
меньшеn
и значение элемента матрицыTem[i+p][i]
не равно 0. - Внутри цикла происходит проверка условия: если значение
Tem[i+p][i]
не равно 0, то цикл продолжается, иначе цикл завершается. - После завершения цикла, значение
p
увеличивается на 1 и цикл начинается заново. - После завершения цикла, значение
p
будет равноn - 1
, что означает, что цикл проверил все элементы матрицы. - Результатом выполнения цикла будет определитель матрицы
Tem
.