用C语言编程,可以尝试一下,实践操作一下

学院竞选学生代表,获得了 n(1≤n≤20000)个提名票,每个提名票都写了一个学号(从 1 到 100 的整数)。现在要求给根据提名票整理出竞选人。将这些提名票依次排列,只保留这个学号第一次出现的位置,删除同一学号其余出现的位置。然后输出这些学号。

就是定义长度为n的数组,元素取值在1-100之间,然后将数组中重复元素删除,只保留第一次出现的元素
简单处理就是双循环,从第一个元素开始判断,与后面所有元素比较,如果想等则将后面的元素值改为-1。

#include <stdio.h>
int main()
{
    int a[10000];
    int n,i,j;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=0;i<n;i++)
    {
        if(a[j] == -1)
            continue;
        for(j=i+1;j<n;j++)
        {
            if(a[j] == -1)
                continue;  
            if(a[j] == a[i])
                  a[j] = -1;
        }
    }
    for(i=0;i<n;i++)
    {
        if(a[i] != -1)
            printf("学号:%d,位置:%d\n",a[i],i+1);
    }
    return 0;
}