1. 程式人生 > >CCF 201412-1 門禁系統 C語言解法

CCF 201412-1 門禁系統 C語言解法

問題描述
試題編號: 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]);
	}
}


如果有看不懂的地方。。。可以評論,如果真的有人看的話。哈哈哈