首页 科普 资讯 养生 问答 找医院 相关问答
首页> 问答

...想用qsort这样的系统自带函数给一个二维数组的某一横行排序怎么做...

发布网友 发布时间:1天前

我来回答

2个回答

热心网友 时间:9小时前

qsort是编译器函数库自带的快速排序函数。其原型为:

void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*));

参数含义如下:

base: 待排序数组首地址。

num: 数组中待排序元素数量。

width: 各元素的占用空间大小。

compare: 指向函数的指针,用于确定排序的顺序。

比较难以理解的是compare函数指针,其确定了如何去排序,通过修改该函数指针指向的函数体,可以对复杂类型进行排序,如结构体等。 也可以改变排序方式,如升序或降序。


要达到问题中的效果,需要在第一个参数传入数据所在行的首地址,第二个参数传入一行中元素的个数,第三行传入每个元素占用的空间,第四个传入自定义的比较函数指针(函数名)。


下面就以一个3行4列整型数组a[3][4],对其第二行(a[1])进行升序排序为例,写一个代码,辅助理解。

#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a, const void *b)
{
return *((int *)a) > *((int *)b);//由于是整型数组,所以将指针转为整型指针后取值,再比较。
}
int main()
{
int a[3][4] = 
{
5,1,54,6,
22,12,44,32,
34,5,2,1
};//定义的原始数组,可以看到是乱序的。
int i,j;

qsort(a[1], 4, sizeof(int), cmp);

//以下代码输出数组元素值,以验证排序结果。
for(i = 0; i < 3; i ++)
{
for(j = 0; j < 4; j ++)
printf("%3d",a[i][j]);
printf("\n");
}
return 0;
}

程序运行后输出:

  5  1 54  6
 12 22 32 44
 34  5  2  1

可以看到第二行已经升序排列,而其它两个没有变化。

热心网友 时间:9小时前

#include<iostream>
#include<algorithm>
using namespace std;

const int M=3; //二维数组行数
const int N=4; //二维数组列数

int cmp( const void *a , const void *b ) //排序规则

    if(*(int*)a!=0&&*(int*)b!=0)  //如果不是0,则参与排序
return*(int*)a-*(int*)b;


int main()
{
int a[M][N]={{13,12,0,0},{15,14,0,0},{18,19,22,23}};
int b[M*N];  //定义一个一维数组做临时存储
int k =0;
for(int i=0; i<M; i++)  //二维数组转化成一维数组
for(int j=0; j<N; j++)
{
b[k]=a[i][j];
k++;
}
for(int i=0; i<M; i++)
qsort(b+(i*N),N,sizeof(int),cmp);//分段排序
k=0;
for(int i=0; i<M; i++)  //将一维数组赋值给原二维数组
{
for(int j=0; j<N; j++)
{
a[i][j]=b[k];
k++;
cout<<a[i][j]<<"\t";
}
cout<<endl;
}
return 0;
}

如果不是一定不用一维数组的话,如果不是一定不用C++的话,这个可以参考。

湖南公办3+3中专院校有哪些 怎么看着简普弹钢琴? 饿了么是怎么配送的? 急急!!!为什么钢琴谱上五线谱和简谱会有两个不一样的音。要弹哪个... 如何处理鸡粪污染水源 牛腩番茄煲贴士 没有电力,一整天你会做什么?英语作文,简单点,要翻译,谢谢 甘肃附近的旅游景点有哪些地方 兰州附近五一去哪里玩适合自驾游,甘肃旅游攻略五一自驾游 英语作文 假如你饿了,你也没钱你会怎么做 中专是什么 中专学校有哪些学校 airpods删除别人的配对 湖南哪些中专最好呢? 中职类学校有哪些 "中专,职校,技校"各是什么意思 中职和中专不是一样的么还有它是国家承认的么毕业有学历没属于哪种类型... 湖南公办3+3中专院校有哪些 “中职”是指哪些学校? 中专、职校、技校有什么区别? 大家好,请问有知道杭州商检局备案流程的吗?我们是要做埃及CIQ需要的... 出口埃及记:CargoX与ACID (一) LARCTIAYEPTS注册过商标吗?还有哪些分类可以注册? 电大中专可以报考大专吗?是国家承认的学历吗?在报考时要注意什么?_百 ... 核销单已经备案寄往海关-出口前还应准备什么工作--谢谢 我家鹩哥不当我们面说话怎么办? 一个人在外面,现在一分钱没有,饿了一天了,有没有好心人帮一下? 头皮痒用什么好 我现在身上没一分钱,没工作,没地方住快饿死了,我该怎么办? 饿了么免单没点够56元也是返56元吗 JSJIEFUZZ注册过商标吗?还有哪些分类可以注册? 湖南公办3+3中专院校有哪些 JSHEJ注册过商标吗?还有哪些分类可以注册? 湖南广播电视大学附属中专怎么样? 在没有一分钱 又饿的受不了的时候应该怎么办? JSTE注册过商标吗?还有哪些分类可以注册? LARCTIAYEPTS注册过商标吗?还有哪些分类可以注册? 中专和职高有什么区别啊!? 名爵zs在哪里看是1.0还是1.5 坐动车去黄坑的姑姑家玩的作文250字。 在某软件中自动输入指定excel文件的内容 autoit3 问题 电脑能连接上学校Wi-Fi,但是点浏览器一直出不来登录页面。ps:连其它 你好,请问这个问题怎么解决?显示连上了Wi-Fi,但是不能打开网页。 帮我看下Autoit中是如何提取文体内容的?图中的文本内容值20.50_百度知... JSJIEFUZZ注册过商标吗?还有哪些分类可以注册? 为什么用 Mac OS 打包的文档在 Windows 下都会多出一个 「__MAC... JSHEJ注册过商标吗?还有哪些分类可以注册? Autoit 3 自动化测试谷歌浏览器下选择文件文本框不能赋值 (只有IE可以... JSTE注册过商标吗?还有哪些分类可以注册? 用gho文件做系统 做完事ie标题栏 qsort函数对相同长度的字符串进行strcmp操作时候是如何排序的? ...调用 qsort() 对一个字符串数组排序, 但是不行。 ...买的,有发票,价格比京东官方店便宜200。这个显卡能不能 冬季为什么也老上火啊? 冬季更易上火 这些情况要小心 广州暂住证要多少钱 广州办理居住证要多少钱? ...今天看网站介绍,发现一个叫"星辰碎片"和"艾露恩的赐福"的法术,可我... wow 暗夜精灵牧师 WOW中牧师的职业 空调内机右侧今天一直漏水,是不是排水管堵住了怎么修 空调内机右侧今天一直漏水,是不是排水管堵住? 问道体木和力金怎么加点和五行还有装备和宠物选择(木我想玩带毒攻... 空调漏水是排水管有问题吗-空调漏水是不是排水管堵住了 上海松江茸梅路237号9号线到那一站 海尔的热水器怎么调水温? ...每千克售价3.6元;其次是二等苹果,每千克售价2.8 水果店今天销售两种水果共4280元苹果每千克3.6元菠萝每千克2.8元已知卖 ... 室内环境对人体的危害 ...已知苹果每千克3.6元,桃子每千克2.8元。苹果和桃子各买了多少千克... 为什么Excel在运行中突然卡死? 小华折了30朵红花,是黄花数量的2/5,黄花有多少朵? 请问金山毒霸网购敢赔险8000元是免费领取?领取完是什么情况?这8000元... 纪念白求恩出现的多音字 新文化运动反对白话文吗 爸爸不在美国,赴美生子妈妈们怎么给宝宝办理ds3053表格和委托书的公证... 社保补缴记录可以消除吗? 北京考研社保有补缴记录怎么办 北京,公司整体缓缴社保2个月,后又由公司补齐。个人的社保记录算是... 北京2011年补缴社保后,今年未收到2011年度社保对账单,区里的社保还不... 真倒霉,我在北京缴纳一年多社保,中间断档一年,我负担不起补缴费用,新公... 身份证注册的手机号码欠费注销后还会不会继续扣费?PS:别人拨打进来说是... ...奥斯汀DVD中英字幕高清晰1280×720版种子下载,谢恩公! ...现在老公被拘留半年,老板被抓。老公会怎么判 萨摩换毛吃什么好 卖手抓饼需要手抓饼酱吗 杨氏太极拳渊源 好好生活的温柔干净文案句子(正能量的经典短句) ...螫一样 然后虫子体液好像也有毒 请问是什么东西 有什么得方法消灭... 安室透的日常在哪看
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com