本文主要是介绍九度OJ 1041:Simple Sorting(简单排序) (排序),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 题目描述:
-
You are given an unsorted array of integer numbers. Your task is to sort this array and kill possible duplicated elements occurring in it.
- 输入:
-
For each case, the first line of the input contains an integer number N representing the quantity of numbers in this array(1≤N≤1000). Next N lines contain N integer numbers(one number per each line) of the original array.
- 输出:
-
For each case ,outtput file should contain at most N numbers sorted in ascending order. Every number in the output file should occur only once.
- 样例输入:
-
6 8 8 7 3 7 7
- 样例输出:
-
3 7 8
- 来源:
- 2008年上海交通大学计算机研究生机试真题
思路:
要求排序之后输出时去掉重复数字,输出时加判断即可。
代码:
#include <stdio.h>
#include <stdlib.h>int cmp(const void *a, const void *b)
{return *((int*)a) > *((int*)b) ? 1: -1;
}int main(void)
{int n;int a[1000], b[1000];int i;while (scanf("%d", &n) != EOF){for (i=0; i<n; i++)scanf("%d", &a[i]);qsort(a, n, sizeof(a[0]), cmp);int k = 0;b[0] = a[0];for (i=0; i<n; i++){if (a[i] != b[k]){k++;b[k] = a[i];}}for (i=0; i<k; i++)printf("%d ", b[i]);printf("%d\n", b[i]);}return 0;
}
/**************************************************************Problem: 1041User: liangrx06Language: CResult: AcceptedTime:0 msMemory:912 kb
****************************************************************/
这篇关于九度OJ 1041:Simple Sorting(简单排序) (排序)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!