OJ 绝对值排序

Posted Life is Binary

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了 OJ 绝对值排序相关的知识,希望对你有一定的参考价值。

绝对值排序

发布时间: 2017年11月12日 12:31   最后更新: 2017年11月12日 12:33   时间限制: 1000ms   内存限制: 128M

  输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。

  输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。

  对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。

3 3 -4 2
4 0 1 2 -3
0
-4 3 2
-3 2 1 0
源代码
  比较绝对值==比较平方
 1 #include <stdio.h>
 2 int main(){
 3     int n;
 4     int i,j;
 5     int temp;
 6     int num[100];    
 7     while(scanf("%d",&n) != EOF){
 8         if(n == 0)
 9             break;
10         for(i = 0; i < n; i++){
11             scanf("%d",&num[i]);
12         }
13         for(i = 0; i < n; i++){
14             for(j = 0; j < n - i - 1; j++){
15                 if(num[j]*num[j] < num[j+1]*num[j+1]){
16                     temp = num[j];
17                     num[j] = num[j+1];
18                     num[j+1] = temp;
19                 }
20             }
21         }
22         for(i = 0; i < n; i++){
23             if(i == n-1)
24                 printf("%d",num[i]);
25             else
26                 printf("%d ",num[i]);
27         }
28         printf("\n");
29     }
30     return 0;
31 }

 

以上是关于 OJ 绝对值排序的主要内容,如果未能解决你的问题,请参考以下文章

如何优化C ++代码的以下片段 - 卷中的零交叉

b2OJ_1565_[NOI2009]植物大战僵尸_拓扑排序+最大权闭合子图

九度oj 题目1397:查找数段

九度oj 1063 整数和

[LeetCode OJ]7. Reverse Integer

九度oj 题目1061:成绩排序