这道题实际上还没全部通过,但是我实在找不到问题出在哪里,自己测了几组数据都没问题,留着以后学得更深再来看吧(如果有大佬可以指点的话不胜感激)


上代码
#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;
}
这道题用到了结构体数组,说实话很久没用到了写的时候也复习了下。
这是一个C语言实现的程序,使用结构体数组处理图书编码和读者请求的编码长度及尾号。程序读取图书编码,对读者的查询进行遍历,查找匹配的编码并返回最小值。当没有找到匹配项时,输出-1。
331

被折叠的 条评论
为什么被折叠?



