您的位置:首页 > 其它

机器翻译

2014-04-29 12:50 288 查看
做这道题要细心的看题目,不然会被坑的。代表单词的是一个非负整数,所以0也是一个单词,判断时就不可以用0来判断。

该题的主要思想是要做好变动数组头尾的处理,处理好了也就没什么问题了。首先定义两个一样大的数组,一个存入代表英语单词的数,这是不变动的数组,在一个是存入进入内存的数,这是变动的数组。当变动数组满了的时候,变动的数组两端要同时变化都自加一。

#include<stdio.h>
int a[1000],b[1000];
int main()
{
int n,m,i,j;
while(scanf("%d%d",&n,&m)!=EOF)
{
int temp=0,p=0;
for(i=0;i<m;i++)
{
scanf("%d",&a[i]);
b[i]=-1;
}
for(i=0;i<m;i++)
for(j=p;j<n;j++)
{
if(b[n-1]!=-1)
{
p++;n++;
}
if(b[j]==-1)
{
b[j]=a[i];
break;
}
if(b[j]==a[i])
temp++;
}
printf("%d\n",m-temp);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  E题 机器翻译