绝对值
2013-12-15 22:35
176 查看
I - 绝对值排序
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d
& %I64u
Submit Status
Description
输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。
Input
输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。
Output
对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。
Sample Input
3 3 -4 2
4 0 1 2 -3
0
#include<stdio.h>
int main()
{
int n,a[110],j,k,t,b[110],i,f=-1;
while(scanf("%d",&n)!=EOF)
{
if(n==0)break;
j=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]<0){b[j]=a[i];j++;a[i]=f*a[i];}}
for(i=1;i<n;i++)
for(j=0;j<n-1;j++)
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(k=0;k<j;k++)
for(i=0;i<n;i++)
if(f*b[k]==a[i])
a[i]=b[k];
for(i=0;i<n-1;i++)
printf("%d ",a[i]);
printf("%d\n",a[n-1]);
}}
Sample Output
-4 3 2
-3 2 1 0
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d
& %I64u
Submit Status
Description
输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。
Input
输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。
Output
对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。
Sample Input
3 3 -4 2
4 0 1 2 -3
0
#include<stdio.h>
int main()
{
int n,a[110],j,k,t,b[110],i,f=-1;
while(scanf("%d",&n)!=EOF)
{
if(n==0)break;
j=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]<0){b[j]=a[i];j++;a[i]=f*a[i];}}
for(i=1;i<n;i++)
for(j=0;j<n-1;j++)
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(k=0;k<j;k++)
for(i=0;i<n;i++)
if(f*b[k]==a[i])
a[i]=b[k];
for(i=0;i<n-1;i++)
printf("%d ",a[i]);
printf("%d\n",a[n-1]);
}}
Sample Output
-4 3 2
-3 2 1 0
相关文章推荐
- 如何求一个int型数的绝对值?
- 5-16: 输入10个数,要求编写一个排序函数,能够实现按绝对值从大到小排序。在主函数中输入10个数,输出排序后的10个数
- HDU 2003 求绝对值
- 位运算实际应用,判断奇偶数、交换变量值、2的倍数乘除法和阶乘、绝对值、相反数、RGB色与16进制的相互转换
- 杭电2020 绝对值排序
- 求数组两两之差绝对值最小的值
- 绝对值等于自己的数有两个,0 和最小的负数?
- MATLAB求实数绝对值——abs
- HDU 2020 绝对值排序
- 取绝对值:abs()与fabs()的区别
- hdoj_2020 绝对值排序
- 绝对值排序
- 【ACM】hdu_zs3_1003_绝对值排序_201308100742
- hdu-2003-求绝对值
- acm--绝对值排序
- 绝对值排序
- 求绝对值(2003)
- JS取整,四舍五入,取绝对值等Math对象常用方法
- 【转】关于int范围中负数最小值的绝对值比整数最大值大初学C,问题源自:为什么C中的int类型(16位)的下溢下限为-32768而上溢上限却是32767。 首先说吧,32767很容易理解,32767=
- HDU 2003 求绝对值