⑴ 编写函数void line_sort(int a[ ][4],int b[ ],int n),n为行数,根据a指向的数组,计算各行元素之和,并保存到b指向的数组中,根据和的大小将a指向的数组以行为单位按从小到大的顺序重新排列。
时间: 2023-06-27 10:05:50 浏览: 223
以下是函数的代码实现:
```c
void line_sort(int a[][4], int b[], int n) {
int sum[n]; // 用于保存每行元素之和
for (int i = 0; i < n; i++) {
// 计算每行元素之和并保存到sum数组中
int row_sum = 0;
for (int j = 0; j < 4; j++) {
row_sum += a[i][j];
}
sum[i] = row_sum;
b[i] = row_sum;
}
// 对b数组进行排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (b[j] > b[j+1]) {
// 交换b数组中对应的元素
int temp = b[j];
b[j] = b[j+1];
b[j+1] = temp;
// 交换a数组中对应的行
int temp_row[4];
for (int k = 0; k < 4; k++) {
temp_row[k] = a[j][k];
a[j][k] = a[j+1][k];
a[j+1][k] = temp_row[k];
}
}
}
}
}
```
函数的核心思路是先计算每行元素之和并保存到一个新数组sum中,然后将sum数组进行排序,并且同时对a数组进行相应的重排。在对b数组进行排序时,使用了冒泡排序的方法。
阅读全文