C语言编写程序对4行4列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序。 函数原型:void sort(int a[][N]); 主函数实现功能:对定义数组的输入及输出; **输入格式:"%d" **输出格式:"%3d"(提醒:每行后面有回车)
时间: 2024-02-01 21:15:54 浏览: 107
以下是代码实现:
```c
#include <stdio.h>
#define N 4
void sort(int a[][N]);
int main()
{
int a[N][N];
printf("请输入16个整数:\n");
for(int i=0; i<N; i++){
for(int j=0; j<N; j++){
scanf("%d", &a[i][j]);
}
}
sort(a);
printf("排序后的数组为:\n");
for(int i=0; i<N; i++){
for(int j=0; j<N; j++){
printf("%3d", a[i][j]);
}
printf("\n");
}
return 0;
}
void sort(int a[][N]){
int temp;
for(int i=0; i<N; i++){
if(i%2 == 0){ // 偶数行
for(int j=0; j<N-1; j++){
for(int k=j+1; k<N; k++){
if(a[i][j] > a[i][k]){
temp = a[i][j];
a[i][j] = a[i][k];
a[i][k] = temp;
}
}
}
}else{ // 奇数行
for(int j=0; j<N-1; j++){
for(int k=j+1; k<N; k++){
if(a[i][j] < a[i][k]){
temp = a[i][j];
a[i][j] = a[i][k];
a[i][k] = temp;
}
}
}
}
}
}
```
程序先读入一个 $4\times4$ 的二维数组,然后调用 sort 函数对数组进行排序。对于偶数行,我们使用冒泡排序算法,从小到大排序;对于奇数行,我们同样使用冒泡排序,不过顺序相反,从大到小排序。最后输出排序后的数组即可。
阅读全文