概述
题目:将二维数组中的每一行进行排序,第一行是整个数组中最小值所在行,第二行是整个数组除第一行的最小值所在行,依次类推。
分析:通过一个参数是二维数组的搜索函数,寻找每次从第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
请按任意键继续. . .
最后
以上就是鳗鱼小蘑菇为你收集整理的C 二维数组排序的全部内容,希望文章能够帮你解决C 二维数组排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复