C 二维数组排序
来源:互联网 发布:淘宝刷单是什么意思 编辑:程序博客网 时间:2024/04/29 19:01
题目:将二维数组中的每一行进行排序,第一行是整个数组中最小值所在行,第二行是整个数组除第一行的最小值所在行,依次类推。
分析:通过一个参数是二维数组的搜索函数,寻找每次从第n行开始数组中的最小值,并且返回最小值所在行
程序如下:
#include<stdio.h>#include<time.h>
#include<stdlib.h>
int search(int arr[][5], int n);//查找数组中最小值的函数
int main()
{
int arr[5][5];
int i,j,n;
int temp;
//用随机值初始化
srand(time(NULL));
for(i = 0; i < 5; i++)
{
for(j = 0; j < 5;j++)
{
arr[i][j] = rand() % 100;
printf("%2d ",arr[i][j]);
}
printf("\n");
}
printf("\n");
for (i = 0; i < 4; i++)
{
//查找第i行开始数组中最小值,最小值所在行与第i行交换
n=search(arr, i);
for (j = 0; j < 5; j++)
{
temp = arr[i][j];
arr[i][j] = arr[n][j];
arr[n][j] = temp;
}
}
//输出排序后的数组
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
printf("%2d ", arr[i][j]);
printf("\n");
}
}
int search(int arr[][5], int n)
{
int min,m;
int i,j;
min = arr[n][0];
m = n;
//从第n行开始查找最小值,返回最小值所在行数
for (i = n; i < 5; i++)
{
for (j = 0; j < 5;j++)
if (min>arr[i][j])
{
min = arr[i][j];
m = i;
}
}
return m;
}
示例结果:
1 31 7 83 86
78 44 26 20 74
49 45 54 69 33
94 94 24 6 77
43 13 61 33 39
1 31 7 83 86
94 94 24 6 77
43 13 61 33 39
78 44 26 20 74
49 45 54 69 33
请按任意键继续. . .
0 0
- C 二维数组排序
- C二维数组冒泡排序
- C语言 二维数组排序
- 数组,二维数组排序
- 二维数组排序函数
- 对二维数组排序
- 二维数组的排序
- 二维数组排序代码
- 二维数组快速排序
- 二维数组的排序
- PHP 二维数组排序
- 二维数组冒泡排序
- PHP二维数组排序
- 二维数组排序
- perl 二维数组排序
- php二维数组排序
- 二维数组冒泡排序
- 二维数组的排序
- HDU 2209 C - 翻纸牌游戏
- Android Camera HAL3中预览preview模式下的控制流
- 十一、SQLite数据库增删改查操作案例
- 用Socket实现PC和手机的文件传输
- Kafka文件存储机制那些事
- C 二维数组排序
- 字符串操作
- C语言实现单链表的逆转指定个数个元素
- (3)行列式的展开定理
- 使用Fiddler抓取到的“姐夫酷”API接口
- CodeForces 554B
- Oracle 非归档模式下 的备份 迁移
- session显示登陆状态
- 排序操作