问题描述
试题编号: 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]); } }
如果有看不懂的地方。。。可以评论,如果真的有人看的话。哈哈哈