C/C++编程题之明明的随机数

简介: C/C++编程题之明明的随机数

将之前一段时间在牛客上刷的题给大家分享一下。其中一道题是“明明的随机数”,现在将通过的代码贴一下,供大家参考。


明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。



注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。


当没有新的输入时,说明输入结束。


#include <stdlib.h>
#include <stdio.h>
int filter(int *array,int count)
{
    int i,j;
    int *p=array;
    for(i=0;i<count;i++)
    {
        for(j=i+1;j<count;j++)
        {
            if(*(p+i)==*(p+j))
            {
                *(p+j)=0;
            }
        }
    }
    int k=0;
    for(i=0;i<count;i++)
    {
        if(*(p+i)!=0)
        {
            *(p+k)=*(p+i);
            k++;
        }
    }
    return k;
}
void sort(int *array,int count)
{
    int i,j,temp;
    int *p = array;
    for(i=0;i<count;i++)
    {
        for(j=i+1;j<count;j++)
        {
            if(*(p+i)>*(p+j))
            {
                temp = *(p+i);
                *(p+i)=*(p+j);
                *(p+j)=temp;
            }
        }
    }
}
int main()
{
    int m,n;
    int q;
    int *array;
    int i; 
    int k;
    int j;
    while(scanf("%d",&m)!=EOF)
    {
        array = (int *)malloc(sizeof(int)*m);
        for(i=0;i<m;i++)
        {
            scanf("%d",&n);
            array[i] = n;
            //printf("n=%d\n",n);
        }
        k = filter(array,m);
        //printf("k=%d\n",k);
        sort(array,k);
        for(j=0;j<k;j++)
        {
            printf("%d\n",array[j]);
        }
        free(array);      
    }
}
相关文章
|
30天前
|
安全 算法 C++
【C/C++ 泛型编程 应用篇】C++ 如何通过Type traits处理弱枚举和强枚举
【C/C++ 泛型编程 应用篇】C++ 如何通过Type traits处理弱枚举和强枚举
47 3
|
1月前
|
安全 算法 编译器
【C++ 泛型编程 进阶篇】深入探究C++模板参数推导:从基础到高级
【C++ 泛型编程 进阶篇】深入探究C++模板参数推导:从基础到高级
248 3
|
1月前
|
存储 算法 编译器
【C++ TypeName用法 】掌握C++中的TypeName:模板编程的瑞士军刀
【C++ TypeName用法 】掌握C++中的TypeName:模板编程的瑞士军刀
237 0
|
1月前
|
安全 算法 C++
【C++泛型编程 进阶篇】模板返回值的优雅处理(二)
【C++泛型编程 进阶篇】模板返回值的优雅处理
32 0
|
1月前
|
安全 算法 编译器
【C++泛型编程 进阶篇】模板返回值的优雅处理(一)
【C++泛型编程 进阶篇】模板返回值的优雅处理
43 0
|
1月前
|
算法 编译器 数据库
【C++ 泛型编程 高级篇】使用SFINAE和if constexpr灵活处理类型进行条件编译
【C++ 泛型编程 高级篇】使用SFINAE和if constexpr灵活处理类型进行条件编译
246 0
|
1月前
|
设计模式 程序员 C++
【C++ 泛型编程 高级篇】C++模板元编程:使用模板特化 灵活提取嵌套类型与多容器兼容性
【C++ 泛型编程 高级篇】C++模板元编程:使用模板特化 灵活提取嵌套类型与多容器兼容性
259 2
|
1月前
|
算法 安全 C++
【C++ 泛型编程 入门篇】深入探索C++的numeric_limits:全面理解数值界限(一)
【C++ 泛型编程 入门篇】深入探索C++的numeric_limits:全面理解数值界限
45 0
|
1月前
|
存储 算法 测试技术
【C++ 泛型编程 入门篇】深入探索C++的numeric_limits:全面理解数值界限(二)
【C++ 泛型编程 入门篇】深入探索C++的numeric_limits:全面理解数值界限
32 0
|
1天前
|
算法 编译器 C语言
探索C++编程的奥秘与魅力
探索C++编程的奥秘与魅力