标签:
分析:可以一遍循环扫描,然后已有的就跳过,没有的就写入。而所谓的最早写用可以理解为从0开始到末尾再次回到0,可以用一个量来标记位置,而无需想哪个最早写。
1 #include <stdio.h> 2 #include<string.h> 3 int main() 4 { 5 int M,N,sen[1001]; 6 int con[1000]; 7 int i,j,sign=0; 8 int now=0; //now指向当前该替换内存的位置 9 int num=0; 10 freopen("translate.in","r",stdin); 11 freopen("translate.out","w",stdout); 12 scanf("%d%d",&M,&N); //M是内存容量,N是文章长度 13 memset(con,-1,sizeof(con)); 14 for(i=0;i<N;i++) 15 { 16 scanf("%d",&sen[i]); 17 } 18 for(i=0;i<N;i++) 19 { 20 for(j=0;j<M;j++) 21 { 22 if(con[j]==sen[i]) // 判断内存已有是否该单词 23 { 24 sign=1; 25 break; 26 } 27 } 28 if(sign==0) //如果内存没有该单词 29 { 30 31 con[now]=sen[i]; 32 now++; 33 num++; 34 if(now==M) now=0; //若超出内存范围则从0再循环 35 } 36 sign=0; 37 } 38 printf("%d",num); 39 return 0; 40 }
标签:
原文地址:http://www.cnblogs.com/charlotteandxing/p/4690951.html