• 1122 小明的调查作业


    题目来源:
    https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1122
    Description
    小明的老师布置了一份调查作业,小明想在学校中随机找N个同学一起做一项问卷调查,聪明的小明为了实验的客观性,他先随机写下了N个1到1000之间的整数(0<N≤1000),不同的数对应着不同的学生的学号。但他写下的数字难免会有重复数字,小明希望能把其余重复的数去掉,然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
    Input
    输入有2行,第1行为1个正整数,表示整数的个数:N.
    第2行有N个用空格隔开的正整数,表示小明写下的N个整数。
    Output
    输出也是2行,第1行为1个正整数M,表示不相同的整数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的整数。
    Sample Input
    10
    20 40 32 67 40 20 89 300 400 15
    Sample Output
    8
    15 20 32 40 67 89 300 400
    题意描述:
    输入正整数的个数n及n个正整数
    计算并输出该无重复的上升序列
    解题思路:
    运用桶排序,再将其从小到大输出即可
    程序代码:

     1 #include<stdio.h>
     2 #include<string.h>
     3 int main()
     4 {
     5     int n,i,a[1010],x,flag,count;
     6     while(scanf("%d",&n) != EOF)
     7     {
     8         memset(a,0,sizeof(a));
     9         for(count=0,i=1;i<=n;i++)
    10         {
    11             scanf("%d",&x);
    12             if(a[x]==0)
    13             count++;
    14             a[x]=1;
    15         }
    16         printf("%d
    ",count);
    17         for(flag=0,i=0;i<1005;i++)
    18         {
    19             if(a[i])
    20             {
    21                 if(flag)
    22                     printf(" %d",i);
    23                 else
    24                 {
    25                     flag=1;
    26                     printf("%d",i);
    27                 }
    28             }
    29         }
    30         printf("
    ");
    31     }
    32     return 0;
    33 }
  • 相关阅读:
    C语言结构体中的函数指针与函数
    写博客
    图灵C/C++图书阅读路线图
    c语言预处理
    Gnu gprof
    linux下全目录全文搜索强大工具grep
    openssl源代码结构
    js学习笔记——脚本化浏览器窗口
    js学习笔记——js的功能限制
    js学习笔记——在html中嵌入脚本
  • 原文地址:https://www.cnblogs.com/wenzhixin/p/6793169.html
Copyright © 2020-2023  润新知