【 OJ 】绝对值排序

绝对值排序

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

描述

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

输入

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

输出

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

样例输入1

3 3 -4 2
4 0 1 2 -3
0

样例输出1

-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 }
时间: 2024-10-15 08:33:34

【 OJ 】绝对值排序的相关文章

hdu 2020 绝对值排序 (java)

问题: 注意输入方式,可以直接用数组来装. 绝对值排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 51480    Accepted Submission(s): 24867 Problem Description 输入n(n<=100)个整数,按照绝对值从大到小排序后输出.题目保证对于每一个测试实例,所有的数的绝对值都不相等.

华为OJ:分段排序

题目有点绕,一个是要二分,用三个字符串,存前,中,后三个,前,后部分都降序排序,然后后半部分再反转一下,讲三部分合起来就好了. import java.util.Scanner; public class dividesort { public static void sort(StringBuffer s){ for(int i=0;i<s.length();i++){ for(int j=i;j<s.length();j++){ if(s.charAt(i)>s.charAt(j))

hdu 2020 绝对值排序

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2020 题目大意:按照绝对值大小从大到小排序,注意输出两个数之间要用空格隔开,在这里引入一个冒泡排序,两个循环即可! 1 #include <stdio.h> 2 #include <math.h> 3 int main () 4 { 5 int n,a[100],i,j,t; 6 while (scanf("%d",&n),n) 7 { 8 for (i=0

绝对值排序

在前面曾经简单的讲了一下排序,也讲到过这道题,是在冒泡的时候,今天会用快排的方式给一下代码: Description 输入n(n<=100)个整数,按照绝对值从大到小排序后输出.题目保证对于每一个测试实例,所有的数的绝对值都不相等. Input 输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理. Output 对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开.每个测试实例占一行. Sample Input 3 3 -4 2 4 0

YT14-先来练练手之绝对值排序

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

HDU2020——绝对值排序(java实现,使用map)

Question Description Input Output Sample Input Sample Output 解题思路简述: 在接收每一个数组的过程中,将负数及其绝对值以键值对的形式存入map(先绝对值,后负数)(因为题目有说“题目保证对于每一个测试实例,所有的数的绝对值都不相等.”) 然后数组中实际存储的是绝对值而不是负数 然后将数组通过冒泡排序降序排序 最后遍历数组,同时查询map中是否有相应键值对,有的话就将该项变为负数 然后打印_完成 源码: import java.util

华为OJ—字符串排序

http://career-oj.huawei.com/exam/ShowProblemInfo?id=2168 编写一个程序,将输入字符串中的字符按如下规则排序. 规则1:英文字母从A到Z排列,不区分大小写. 如,输入:Type 输出:epTy 规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列. 如,输入:BabA 输出:aABb 规则3:非英文字母的其它字符保持原来的位置. 如,输入:By?e 输出:Be?y 样例: 输入: A Famous Saying: Much Ado Ab

华为OJ 字符串排序

写完之后,总觉得有点复杂.. 要求: 编写一个程序,将输入字符串中的字符按如下规则排序. 规则1:英文字母从A到Z排列,不区分大小写. 如,输入:Type输出:epTy 规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列. 如,输入:BabA输出:aABb 规则3:非英文字母的其它字符保持原来的位置. 如,输入:By?e输出:Be?y 样例: 输入: A Famous Saying: Much Ado About Nothing(2012/8). 输出: A aaAAbc dFgghh:

oj教程--排序算法(Java)

import java.util.ArrayList; import java.util.List; /** * 排序算法主类 * * @author eric */ class SortArray { /* * [插入排序] * 基本思想: 在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的, * 现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的, 如此反复循环,直到全部排好顺序. */ public void insertSort(int[] arr)