沧海梦 @ 2018-05-02 11:50:18
#include <stdio.h>
#include <string.h>
#include <math.h>
int m[1001],n[1001],o[20],l[1001];
int main()
{
m[1001]=-1;
memset(l,0,sizeof(l));
int a,b,c,d,s=0,count=0,h=0,k=0;
scanf("%d %d",&a,&b);
for(int i=0;i<=a-1;i++)
scanf("%d",&m[i]);
for(;scanf("%d %d",&c,&d)<=2*b,b!=0;b--)
{
memset(n,-1,sizeof(n));
s=0;
for(int i=0;i<=a-1;i++)
{
h=(pow(10,c));
h=m[i]%h;
if(h==d)
{
n[s]=m[i];
o[s]=i;
s++;
//count++;
}
}
if(n[0]!=-1)
{
for(int i=0;i<=a-1;i++)
if(n[0]>n[i]&&n[i]!=-1)
{
n[0]=n[i];
o[0]=o[i];
}
//printf("%d\n",n[0]);
l[k++]=n[0];
m[o[0]]=0;
}
else
//printf("-1\n");
l[k++]=-1;
if(b==1) break;
}
for(int i=0;l[i]!=0;i++)
printf("%d\n",l[i]);
return 0;
}
by Parabola @ 2018-05-02 13:10:41
m[1001]=-1很皮啊
删掉那句试试
by VenusM1nT @ 2018-05-02 13:17:15
m[1001]怕不是会RE
by x义x @ 2018-05-02 14:56:46
int m[1001],n[1001],o[20],l[1001];
int main()
{
m[1001]=-1;
int m[2001]的下标是从0到2000,m[2001]实际上是没有的,给m[2001]赋值肯定会越界。
by 沧海梦 @ 2018-05-02 16:42:50
谢谢大佬们的帮助 ,当时还没写出程序思维比较混乱的时候码上去的那行,结果后来忘删了... 我终于发现问题了----我以为查完一次需求码,这个码就没有了,所以我就清零了 最后再次感谢大佬们的帮助
by 请叫我帅哥jbl @ 2018-07-09 21:17:17
emmmm