您的位置:首页 > 理论基础 > 计算机网络

绝对值排序 http://acm.hdu.edu.cn/showproblem.php?pid=2020

2013-08-05 16:03 399 查看

绝对值排序

TimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)
TotalSubmission(s):30429AcceptedSubmission(s):15014


[align=left]ProblemDescription[/align]
输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。
[align=left]Input[/align]
输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。
[align=left]Output[/align]
对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。
[align=left]SampleInput[/align]

33-424012-30

[align=left]SampleOutput[/align]

-432-3210

[align=left]Author[/align]
lcy
[align=left]Source[/align]
C语言程序设计练习(三)
利用qsort排序简单,只不过是多了个数学函数绝对值。

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
intcmp(constvoid*a,constvoid*b)
{
returnabs(*(int*)a)-abs(*(int*)b);
}

intmain()
{
intn,i;
inta[105];
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
qsort(a,n,sizeof(a[0]),cmp);
for(i=n-1;i>=0;i--)
{
if(i!=0)
printf("%d",a[i]);
else
printf("%d\n",a[i]);
}
}
return0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: