虚拟机中C语言,定义一个 5*5 的矩阵, 里面放随机数。将每一行的数据从小到大排序。使用数组指针
时间: 2024-09-12 12:02:38 浏览: 65
在C语言中,为了在虚拟机上定义一个5x5的矩阵并填充随机数,然后对每行数据进行排序,你可以这样做:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ROWS 5
#define COLS 5
// 定义矩阵结构体
typedef struct {
int data[ROWS][COLS];
} Matrix;
// 随机数生成函数
int random_number() {
return rand() % (ROWS * COLS); // 生成0到49之间的整数
}
// 对矩阵一行进行排序
void sort_row(int (*arr)[COLS]) {
int i, j;
for (i = 0; i < COLS - 1; i++) {
for (j = 0; j < COLS - i - 1; j++) {
if (arr[j][0] > arr[j + 1][0]) { // 使用第一列作为比较依据,可以按其他列替换
int temp = arr[j][0];
arr[j][0] = arr[j + 1][0];
arr[j + 1][0] = temp;
}
}
}
}
// 主函数
int main() {
srand(time(0)); // 设置随机种子,确保每次程序运行结果不同
Matrix matrix;
// 初始化矩阵
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
matrix.data[i][j] = random_number(); // 填充随机数
}
printf("Row %d: ", i + 1);
for (int k = 0; k < COLS; k++) {
printf("%d ", matrix.data[i][k]);
}
printf("\n"); // 打印一行
sort_row(matrix.data[i]); // 排序当前行
}
return 0;
}
```
这个示例中,我们首先定义了一个`Matrix`结构体来表示5x5的矩阵,并用一个`random_number()`函数生成随机数。`sort_row()`函数负责对单行数据进行排序。在主函数`main()`中,我们初始化矩阵并打印出原始随机数和排好序后的矩阵。
阅读全文