题解 | #明明的随机数#

明明的随机数

http://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0

解题思路

首先读取随机数数量并保存到变量N 然后通过malloc申请一个动态内存空间保存读入的变量 之后将输入的随机整数保存在该动态内存空间之中 自定义一个函数处理重复的数据并且输出结果 调用该函数 return 0 结束main函数

自定义函数处理重复数据并且保存结果

首先新建一个大小为1001的数组q并且初始化为0 (1001是因为数组下标是从0开始的,但是随机数的范围是1-1000) 用数组q的下标表示输入的随机数,下标对应的元素表示该随机数的个数 将数组q中大于1的元素统一写为1 最后将数组中为1的元素的下标输出 这样同时实现了去重复和排序。

#include<stdio.h>
#include<stdlib.h>
#define LEN 1000
void find_same(int* p, int N)
{
    int q[LEN]={0};
    for(int i=0;i<N;i++)
    {
        int j = p[i];
        q[j]++;
    }
    for(int j=0; j<LEN;j++)
    {
        if(q[j]>1)
            q[j]=1;
        if(q[j]==1)
        {
            printf("%d",j);
        }
    }
}

int main(void)
{
    int N;
    scanf("%d",&N);
    int* p = (int*)malloc(sizeof(int)*N);
    for (int i=0;i<N;i++)
    {
        scanf("%d",&p[i]);
    }
    find_same(p, N);
    return 0;
}

代码效果

alt

全部评论

相关推荐

一名愚蠢的人类:多少games小鬼留下了羡慕的泪水
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务