我是靠谱客的博主 鳗鱼小蘑菇,最近开发中收集的这篇文章主要介绍C 二维数组排序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目:将二维数组中的每一行进行排序,第一行是整个数组中最小值所在行,第二行是整个数组除第一行的最小值所在行,依次类推。

分析:通过一个参数是二维数组的搜索函数,寻找每次从第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 二维数组排序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部