CCF 201412-1 門禁系統 C語言解法
阿新 • • 發佈:2019-01-04
問題描述
試題編號: 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]); } }
如果有看不懂的地方。。。可以評論,如果真的有人看的話。哈哈哈