C语言学习历程——编程练习2——06
来源:互联网 发布:安卓lua 虚拟按键源码 编辑:程序博客网 时间:2024/05/20 06:09
例如 3行3列 的二维数组 34,85,72,93,49,28,48,12,43
输出 34, 72, 85 93, 49, 28 12, 43, 48
分析:这个题目直接按照题目的意思,找到偶数行奇数行分别排序
下面是代码实现:
/*************************************************************************************
对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序
例如 3行3列 的二维数组 34,85,72,93,49,28,48,12,43
输出 34, 72, 85 93, 49, 28 12, 43, 48
*************************************************************************************/
#include <stdio.h>
#define N 4
void Swap (int *a, int *b) //交换数
{
int temp = 0;
temp = *a;
*a = *b;
*b = temp;
}
void S_L_Sort(int *Arr) //从小到大排序,选择
{
int i = 0;
int j = 0;
int min_index = 0;
for (i = 0; i < N - 1; i++)
{
min_index = i;
for (j = i + 1; j < N; j++)
{
if (Arr[j] < Arr[min_index])
{
min_index = j;
}
}
if (min_index != i)
{
Swap(&Arr[min_index], &Arr[i]);
}
}
}
void L_S_Sort(int *Arr) //从大到小排序,冒泡
{
int i = 0;
int j = 0;
for (i = 0; i < N - 1; i++)
{
for (j = 0; j < N - i - 1; j++)
{
if (Arr[j] < Arr[j + 1])
{
Swap(&Arr[j], &Arr[j + 1]);
}
}
}
}
void ArrSort(int (*Arr)[N])
{
int i = 0;
while (i < N)
{
if (i % 2 == 0)
{
S_L_Sort(Arr[i]); //偶数行从小到大排序
}
else
{
L_S_Sort(Arr[i]); //奇数行从大到小排序
}
i++;
}
}
void PrintArr (int (*Arr)[N]) //打印二维数组
{
int i = 0;
int j = 0;
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
if (j % 4 == 0)
{
printf ("\n");
}
printf ("%3d", Arr[i][j]);
}
}
printf ("\n");
}
int main()
{
int Arr[N][N] = {6,51,32,16,5,46,84,3,53,46,31,35,16,54,15,3}; //定义一个4*4的二维数组
ArrSort(Arr);
PrintArr(Arr); //按照要求排序并打印
return 0;
}
- C语言学习历程——编程练习2——06
- C语言学习历程——编程练习2——01
- C语言学习历程——编程练习2——02
- C语言学习历程——编程练习2——03
- C语言学习历程——编程练习2——04
- C语言学习历程——编程练习2——05
- C语言学习历程——编程练习2——07
- C语言学习历程——编程练习2——08
- C语言学习历程——编程练习2——09
- C语言学习历程——编程练习2——10
- C语言学习历程——编程练习3——01
- C语言学习历程——编程练习3——02
- C语言学习历程——编程练习3——03
- C语言学习历程——编程练习3——04
- C语言学习历程——编程练习3——05
- C语言学习历程——Training02位运算01
- C语言学习历程——Training02位运算02
- C语言学习历程——Training02位运算03
- 用Java Serialization实现任意文件网络传输
- Log调试的技巧
- Hibbernate详解一
- Java 主线程等待子线程执行完再执行
- Android沉浸式状态栏
- C语言学习历程——编程练习2——06
- 八大排序算法
- BitBucket介绍以及基础使用
- u3d UGUI 拖动图片
- centos7 安装相应版本的mysql5.7
- JavaScript 内存泄漏教程
- http://blog.csdn.net/liyx2018/article/details/51383072
- 理解dropout
- Java(二) 三大特性和优点