#include <iostream> using namespace std; const int MAX = 100; int main() { int n, a[MAX][MAX], b[MAX * (MAX + 1) / 2], k = 0; cout << "请输入矩阵的阶数 n:"; cin >> n; cout << "请输入 " << n << " 行 " << n << " 列的下三角矩阵:\n"; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (j <= i) { cin >> a[i][j]; b[k++] = a[i][j]; } else { a[i][j] = 0; } } } cout << "\n压缩存储前的下三角矩阵为:\n"; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << a[i][j] << " "; } cout << endl; } cout << "\n压缩存储后的一维数组 b 为:\n"; for (int i = 0; i < k; i++) { cout << b[i] << " "; } cout << endl; return 0; }改成c语言
时间: 2024-03-19 21:44:07 浏览: 218
下面是将该程序转换为 C 语言的代码:
```c
#include <stdio.h>
#define MAX 100
int main()
{
int n, a[MAX][MAX], b[MAX * (MAX + 1) / 2], k = 0;
printf("请输入矩阵的阶数 n:");
scanf("%d", &n);
printf("请输入 %d 行 %d 列的下三角矩阵:\n", n, n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (j <= i) {
scanf("%d", &a[i][j]);
b[k++] = a[i][j];
} else {
a[i][j] = 0;
}
}
}
printf("\n压缩存储前的下三角矩阵为:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
printf("\n压缩存储后的一维数组 b 为:\n");
for (int i = 0; i < k; i++) {
printf("%d ", b[i]);
}
printf("\n");
return 0;
}
```
主要的改动包括:
1. 将 `#include <iostream>` 改为 `#include <stdio.h>`,因为 C 语言中使用的是 stdio.h 头文件,而不是 iostream 头文件。
2. 将 `using namespace std;` 去掉,因为 C 语言中没有命名空间的概念。
3. 将 `cout` 和 `cin` 改为 `printf` 和 `scanf`,因为 C 语言中使用的是这两个函数来进行输入输出。
阅读全文