如何既复习线性代数又复习C语言?
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <math.h> int main() { float a[100][100],b[100]; int i, j, n; //intro printf("///////////////////////////////////////\n"); printf("/* Programmed by Cherry Ye */\n"); printf("/* 只能计算有唯一解的线性方程组 */\n"); printf("///////////////////////////////////////\n\n"); //输入 printf("有n个未知数,n="); scanf("%d", &n); printf("请输入方程组的增广矩阵:\n"); for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { scanf("%f", &a[i][j]); } scanf("%f", &b[i]); } printf("\n"); printf("您输入的方程组是:\n"); for (i = 1; i <= n; i++) { printf("%5.2fx%d", a[i][1], 1); for (j = 2; j <= n; j++) { if (a[i][j] < 0) printf("-%5.2fx%d", -a[i][j], j); else printf("+%5.2fx%d", a[i][j], j); } printf("=%5.2f\n", b[i]); } printf("\n"); //消元 float k; int t; for (i = 1; i <= n-1; i++) { for (j = i + 1; j <= n; j++) { k = a[j][i] / a[i][i]; for (t = i; t <= n; t++) { a[j][t] -= a[i][t] * k; } b[j] -= b[i] * k; } } printf("消元后的方程组是:\n"); for (i = 1; i <= n; i++) { printf("%5.2fx%d", a[i][1], 1); for (j = 2; j <= n; j++) { if (a[i][j] < 0) printf("-%5.2fx%d", -a[i][j], j); else printf("+%5.2fx%d", a[i][j], j); } printf("=%5.2f\n", b[i]); } printf("\n"); //计算答案 float ans[100]; for (i = n; i >= 1; i--) { ans[i] = b[i] / a[i][i]; for (j = n - 1; j >= 1; j--) { b[j] -= a[j][i] * ans[i]; } } //输出答案 printf("方程的解为:\n"); for (i = 1; i <= n; i++) { printf("x%d=%5.2f\n", i, ans[i]); } return 0; }