提问人:Blu 提问时间:3/29/2022 更新时间:3/29/2022 访问量:327
使用高斯消元法的矩阵的梯级形式 [C 编程]
Echelon form of a Matrix using Gauss-Elimination [C Programming]
问:
我正在尝试将矩阵简化为梯队形式。.这是我到目前为止的尝试。 当 2 行的元素成比例并且我在代码执行完成之前得到零行时,它不起作用。
此外,由于我使用对角线元素作为参考,如果它是 2 x 4 矩阵:(我的代码就会失败请帮我找到合适的解决方案。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
int m,n;
int i,j,k;
float a[10][10];
printf("Enter the order of Matrix: ");
scanf("%d%d",&m,&n);
printf("\n Enter the elements of Matrix : ");
for(i=0;i<m;i++){
for(j=0;j<n;j++) {
scanf("%f",&a[i][j]);
}
}
for(i=0;i<m;i++) {
if((a[i][i])!=1) {
float temp=a[i][i];
if(temp==0) {
break; // break or continue ??
}
for(j=0;j<n;j++) {
a[i][j]=((a[i][j])/temp);
}
}
for(k=i+1;k<m;k++) {
float p=a[k][i];
for(j=i;j<3;j++) {
a[k][j]=a[k][j]-(a[i][j]*p);
}
}
}
for(i=0;i<m;i++) {
for(j=0;j<n;j++) {
printf("%.2f\t",a[i][j]);
}
printf("\n");
}
int flag,fl=0;
for(i=0;i<m;i++) {
flag=0;
for(j=0;j<n;j++) {
if(a[i][j]==0) {
flag++;
}
if(flag==3)
fl++;
}
}
printf("\n\n\n Rank of your Matrix is: %d \n",(n-fl));
return 0;
} ```
答: 暂无答案
上一个:我弄错了“C”语言的符号值
下一个:字符串程序(替换字母)
评论