八十分求助!!!希望大佬给指点一下,十分感谢

P3955 [NOIP2017 普及组] 图书管理员

guoxiao @ 2019-11-05 19:01:26

include<cstdio>

include<algorithm>

using namespace std; int a[10005],b[10005],c[10005],d[10005]; //图书编码 位数 读者编码

int main() { int n,q;//书的数量 读者数量

int e=-1;

scanf("%d%d",&n,&q);

for(int i=1;i<=n;i++)
{
    scanf("%d",&a[i]);
}

sort(a,a+n+1);

for(int i=1;i<=n;i++)
{
    d[i]=1;
}

for(int j=1;j<=q;j++)
{
    scanf("%d%d",&b[j],&c[j]);
}
for (int i=1;i<=q;i++)
{
    for (int j=1;j<=b[i];j++)
    {
        d[i]*=10;
    }
}
for (int i=1;i<=q;i++)
{
    for (int j=1;j<=n;j++)
    {
          if (a[j]%d[i]==c[i])
        {
            printf("%d\n",a[j]);

             break;               
        }
        else if (j==n)
        {
            printf("%d\n",e);

            break;
        }    
    }
}

return 0; 

}


by guoxiao @ 2019-11-05 19:02:09

前两个点re 不知道为啥,求解,谢谢,在线等


by Keith_2006 @ 2019-11-05 19:17:50

我请不要使用Md强调头文件的重要性

希丰展?使Md


by Keith_2006 @ 2019-11-05 19:18:21



include<cstdio>
include<algorithm>

using namespace std; int a[10005],b[10005],c[10005],d[10005]; //图书编码 位数 读者编码

int main() { int n,q;//书的数量 读者数量

int e=-1;

scanf("%d%d",&n,&q);

for(int i=1;i<=n;i++)
{
    scanf("%d",&a[i]);
}

sort(a,a+n+1);

for(int i=1;i<=n;i++)
{
    d[i]=1;
}

for(int j=1;j<=q;j++)
{
    scanf("%d%d",&b[j],&c[j]);
}
for (int i=1;i<=q;i++)
{
    for (int j=1;j<=b[i];j++)
    {
        d[i]*=10;
    }
}
for (int i=1;i<=q;i++)
{
    for (int j=1;j<=n;j++)
    {
          if (a[j]%d[i]==c[i])
        {
            printf("%d\n",a[j]);

             break;               
        }
        else if (j==n)
        {
            printf("%d\n",e);

            break;
        }    
    }
}

return 0; 

}

by Ryo_Yamada @ 2019-11-05 19:18:59

应该是这里

for(int i=1;i<=n;i++)
{
    d[i]=1;
}

和这里

for (int i=1;i<=q;i++)
{
    for (int j=1;j<=b[i];j++)
    {
        d[i]*=10;
    }
}

一个循环用的n次,一个用的q次,d[10005]又是全局变量自动为0,如果n<q,下面出现%0的情况就RE了

对了,下面循环每次都要将e赋值为-1


by guoxiao @ 2019-11-05 19:28:00

@breeze末影 那应该怎么改呢,将第一个循环改为q吗


by guoxiao @ 2019-11-05 19:28:43

@breeze末影 改为q就过了,谢谢


|