C语言输入一个n阶矩阵,每一行升序输出。并使用指针
时间: 2023-06-19 13:07:44 浏览: 284
可以使用指针数组来存储每一行的数据,然后对每一行进行排序并输出。
以下是示例代码:
```c
#include <stdio.h>
void sort(int *arr, int n) {
// 冒泡排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (*(arr + j) > *(arr + j + 1)) {
int temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}
}
}
}
int main() {
int n;
printf("请输入矩阵的阶数 n:");
scanf("%d", &n);
int matrix[n][n];
int *rows[n]; // 指针数组,每个元素指向一个行数组的首元素
// 输入矩阵数据
printf("请输入矩阵的元素:\n");
for (int i = 0; i < n; i++) {
rows[i] = matrix[i]; // 将每个指针指向对应的行数组
for (int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 对每一行进行排序并输出
printf("每行升序输出:\n");
for (int i = 0; i < n; i++) {
sort(rows[i], n); // 对行数组进行排序
for (int j = 0; j < n; j++) {
printf("%d ", *(rows[i] + j)); // 输出排序后的行数组
}
printf("\n");
}
return 0;
}
```
该程序首先使用指针数组 `rows` 来存储每一行的数据,然后对每一行进行排序并输出。其中 `sort` 函数使用冒泡排序来对一个行数组进行排序。
阅读全文