概述
来自某次帮同学做作业的时候,本来想在CSDN上随便找个上三角化的轮子直接用,结果没想到居然找不到很好用的,然后就自己码了一个
因为只是一个小作业,所以没考虑时间空间复杂度什么的,目的就是单纯为了好理解,写起来方便,需要哪一块功能直接拿走就用就行了
代码有什么问题可以评论告诉我呀!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define row 10
#define col 10
#define ElemType double
int main(void)
{
ElemType A[row][col] = { 0.0 };
int i = 0, j = 0;// 用于遍历矩阵
srand((unsigned)time(NULL));
for (i = 0; i < row; ++i) for (j = 0; j < col; ++j) A[i][j] = (ElemType)rand() / RAND_MAX;
//生成矩阵并赋随机初值(此处初值设置为0-1)
for (i = 0; i < row; ++i) {
for (j = 0; j < col; ++j) {
printf("%6.2lf", A[i][j]);
}
printf("n");
}//打印上三角化前矩阵
printf("nnn");//用于分隔开两个矩阵
for (int k = 0; k < row - 1; ++k) {//基行
for (i = k + 1; i < row; ++i) {//定位操作行
for (j = 0; j < col; ++j) {//定位操作元素
A[i][j] -= A[k][j] * A[i][k] / A[k][k];
}
}
}//矩阵上三角化
for (i = 0; i < row; ++i) {
for (j = 0; j < col; ++j) {
if (A[i][j] < 0.0) A[i][j] = -A[i][j];
}
}//因double类型并不精确,部分0元素存放时为负数,若不进行无符号化,输出时可能会有“-0.00”,影响美观
//但如果元素类型为整型则不需要这一步
for (i = 0; i < row; ++i) {
for (j = 0; j < col; ++j) {
printf("%6.2lf", A[i][j]);
}
printf("n");
}//打印上三角化后矩阵
return 0;
}
最后
以上就是自觉雨为你收集整理的C语言 矩阵的上三角化的全部内容,希望文章能够帮你解决C语言 矩阵的上三角化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复