这道题实际上还没全部通过,但是我实在找不到问题出在哪里,自己测了几组数据都没问题,留着以后学得更深再来看吧(如果有大佬可以指点的话不胜感激)
上代码
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
struct shu_bianma
{
int len;
int bianma;
};
int main()
{
int n, q, i, n_min = 1000000000, bianma_min = 1000000000;
int* shu;
struct shu_bianma* xuqiu;
scanf("%d %d", &n, &q);
shu = malloc(sizeof(int) * n);
xuqiu =(struct shu_bianma*) malloc(sizeof(struct shu_bianma) * n);
for (i = 0; i < n; i++)//图书编码
{
scanf("%d", &shu[i]);
if (shu[i] < n_min)
{
n_min = shu[i];
}
}
for (i = 0; i < q; i++)//读者要的编码长度以及其编码尾号
{
scanf("%d %d", &xuqiu[i].len, &xuqiu[i].bianma);
}//输入
for (i = 0; i < q; i++)
{
bianma_min = 10000000;int j = 0;
int tmp = 0;
for (j = 0; j < n; j++)
{
if ( shu[j]%(int)pow(10,xuqiu[i].len)== xuqiu[i].bianma)
{
if (shu[j] < bianma_min)
{
bianma_min = shu[j];
tmp = 1;
}
}
}
if (tmp == 1)
{
printf("%d\n", bianma_min);
}
else {
printf("-1\n");
}}
return 0;
}
这道题用到了结构体数组,说实话很久没用到了写的时候也复习了下。