想听
当前位置 : 想听 > 问答 > 其它 > 【C语言实验题绝对值排序描述输入n(n
问题:

【C语言实验题绝对值排序描述输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。输入输入数据有多组,每组占一行,每】

更新时间:2024-05-24 00:25:33

问题描述:

C语言实验题绝对值排序描述输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。输入输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。输出对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。样例输入33-424012-30样例输出-432-3210(这个问题其他我都懂,就是对于输入的一系列数,怎么对其进行绝对值排序,然后还要按原值进行排序输出。也就是最核心的问题我不懂。请高手指教。)

任初农回答:

  任何排序算法都涉及到被排序元素间的“比较”操作,排序算法根据元素比较的结果执行相应的元素移动操作,因此,“比较”过程与“移动”过程是相互独立的,也就是说如何比较是可任意定义的,你的这个问题可以使用任意一种排序算法进行排序,唯一要求的是你必须额外提供一个比较函数,该比较函数中执行的是绝对值比较而不是真值比较,C语言的库函数voidqsort(void*base,size_tnum,size_twidth,int(__cdecl*compare)(constvoid*elem1,constvoid*elem2));就可以完成你的任务,其中的参数compare就是一个执行比较操作的函数指针。

推荐排行