巧妙的 排序+去重——C语言
生活随笔
收集整理的這篇文章主要介紹了
巧妙的 排序+去重——C语言
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了N個1到1000之間的隨機整數(N≤1000),對于其中重復的數字,只保留一個,把其余相同的數去掉,不同的數對應著不同的學生的學號。然后再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成“去重”與“排序”的工作(同一個測試用例里可能會有多組數據,希望大家能正確處理)。
輸入描述:
輸入多行,先輸入隨機整數的個數,再輸入相應個數的整數。
輸出描述:
返回多行,處理后的結果。
#define _CRT_SECURE_NO_WARNINGS //有時候scanf不能用的話 加這個就行了 #include <stdio.h> #include <stdlib.h> #include <string.h>int test_student(int* a, int n) //完成排序+去重 {int t[1024] = { 0 };int i;for (i = 0; i < n; i++) {t[a[i]] = 1; //a[i] 內容作為索引。 不重復且從小到大}for (i = 0; i < 1024; i++) {if (t[i])printf("%d\n", i); //i 即 上面for中的a[i]}return 0;}int main(int argc, char const* argv[]) //argc是命令行總的參數個數 argv[]是argc個的具體的參數 {int i, n;while (~scanf("%d", &n) && n > 0) { //讀取 個數 int* a = malloc(sizeof(int) * n); //malloc 分配內存空間 #include <stdlib.h>for (i = 0; i < n; i++) {scanf("%d", &a[i]); //讀取 具體數}test_student(a, n);free(a); //malloc 釋放內存空間 #include <stdlib.h>}return 0; }?
總結
以上是生活随笔為你收集整理的巧妙的 排序+去重——C语言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我看过且非常喜欢的《电影》和书
- 下一篇: 数据结构——基本概念