Cons. Marx 2021-10-17 11:45 采纳率: 92.3%
浏览 14
已结题

请问为什么运行不了了,是因为修改了一些函数的原因吗

img


#include <iostream>
#include <string>
using namespace std;
//图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数。
//每位借书的读者手中有一个需求码,这个需求码也是一个正整数。
//如果一本书的图书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。
//小 D 刚刚当上图书馆的管理员,她知道图书馆里所有书的图书编码,她请你帮她写一个程序,对于每一位读者,
//求出他所需要的书中图书编码最小的那本书,如果没有他需要的书,请输出 - 1。

//输入的第一行,包含两个正整数 n 和 q,以一个空格分开,分别代表图书馆里书的数量和读者的数量。
//接下来的 n 行,每行包含一个正整数,代表图书馆里某本书的图书编码。
//接下来的 q 行,每行包含两个正整数,以一个空格分开,第一个正整数代表图书馆里读者的需求码的长度,
//第二个正整数代表读者的需求码。

bool judge(string m, string n, int ln, int );

class  Library {
public:    
    Library()
    {
        length = s.length();
    }
    string s;
    int length;
    bool jud = false;
    int value=0;
};

void begin(Library *a);

int str2int(string s);

struct vis {
    int  length=0;
    string code;
};

int submit(Library a[]);

int n  , q ;


int main()
{
    cin >> n >> q;
    Library* a = new class Library[n];
    vis* b = new struct vis[q];
    for (int i = 0; i < n; i++)
    {
        cin >> a[i].s;
    }
    for (int i = 0; i < n; i++)
    {
        a[i].length = a[i].s.length();
        a[i].value = str2int(a[i].s);
    }
    for (int i = 0; i < q; i++)
    {
        cin >> b[i].length >> b[i].code;
    }
    for (int i = 0; i < q; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (judge(a[j].s, b[i].code, b[i].length,a[j].length))
            {
                a[j].jud = true;
            }
        }
        cout<<submit(a)<<endl;
        begin(a);
    }


}

bool judge(string m, string n, int ln,int x)
{
    for (int i = 0; i < ln; i++)
    {
        if (m[i] != n[i] )
        {
            if (x == -1)
            {
                return false;
            }
        }
    }
    return true;
}

int submit(Library a[])
{
    int re=0;
    int jud = a[0].value;
    for (int i = 0; i < n; i++)
    {
        if (a[i].jud && a[i].value<=jud && a[i].value !=-1 )
        {
            a[re].value = jud;
            jud = a[i].value;
            re = i;
            a[i].value = -1;
        }
    }
    return jud;
}

void begin(Library* a)
{
    for (int i = 0; i < n; i++)
    {
        a[i].jud = false;
    }
}

int str2int(string s,int n)
{
    int temp = 0;
    for (int i = 0; i < n; i++)
    {
        temp = temp * 10 + s[i] - '0';
    }
    return temp;
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月25日
    • 创建了问题 10月17日

    悬赏问题

    • ¥15 ansys fluent计算闪退
    • ¥15 有关wireshark抓包的问题
    • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
    • ¥15 向数据表用newid方式插入GUID问题
    • ¥15 multisim电路设计
    • ¥20 用keil,写代码解决两个问题,用库函数
    • ¥50 ID中开关量采样信号通道、以及程序流程的设计
    • ¥15 U-Mamba/nnunetv2固定随机数种子
    • ¥15 vba使用jmail发送邮件正文里面怎么加图片
    • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。