问题描述
试题编号: 201412-1
试题名称: 门禁系统
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
问题描述 涛最近涛要负责图书馆的管理工作,需要记录下每天读者的到访情况。 每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记
录,请问每一条记录中的读者是第几次出现。 输入格式 输入的第一行包含一个整数 n,表示涛涛的记录条数。 第二行包含 n 个整数,依次表示涛涛的记录中每位读者的编号。 输出格式 输出一行,包含 n 个整数,由空格分隔,依次表示每条记录中的读者 编号是第几次出现。
样例输入 5 1 2 1 1 3
样例输出 1 1 2 3 1
评测用例规模与约定 1≤n≤1,000,读者的编号为不超过 n 的正整数。
c语言代码如下:
#include<stdio.h>
int main()
{
int n,a[1000],i,j,k,b[1000],flag=0,c[1000]; //a[1000]存放的是输入的数值;b[1000]存放的是有哪几个数值,如样例中是1,2,3;c[1000]存放的是每个“1,2,3”所对应的个数
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
b[0]=a[0];
for(i=1,j=1;i<n;j++,i++)
{
flag=0;
for(k=i+1;k<n;k++)
{
if(a[i]==a[k]||a[i]==a[0])
{
j--;
flag=1;
break;
}
}
if(flag==0)
b[j]=a[i];
}
for(i=0;i<j;i++)
{
c[i]=0;
}
for(i=0;i<n;i++)
{
for(k=0;k<j;k++)
{
if(a[i]==b[k])
{
c[k]++;
flag=k;
break;
}
}
printf("%d ",c[flag]);
}
}
如果有看不懂的地方。。。可以评论,如果真的有人看的话。哈哈哈