要气疯了,,,最后发现是没写%07d,emmmm
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
const int maxn = 1e4 + 10, maxnm = 1e3 + 10;
struct book {
int id;
string booktitle, author,publisher, pubyear;
vector<string>keywords;
bool operator<(const book&y)const
{
return id < y.id;
}
}books[maxn];
void Convert(string s, vector<string>&keywords)
{
string temp = "";
for (int i = 0; i < s.length(); i++)
{
if (s[i] != ' ')temp += s[i];
if (s[i] == ' ' || i == s.length() - 1)
{
if (temp.size() > 0)keywords.push_back(temp);
temp = "";
}
}
}
int n, m;
int main()
{
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
cin >> books[i].id;
getchar();
getline(cin, books[i].booktitle);
getline(cin, books[i].author);
string keywords;
getline(cin, keywords);
Convert(keywords, books[i].keywords);
getline(cin, books[i].publisher);
cin >> books[i].pubyear;
}
sort(books, books + n);
scanf("%d", &m);
getchar();
while (m--)
{
int num;
string s;
scanf("%d: ", &num);
getline(cin, s);
cout << num << ": " << s << endl;
bool flag = false;
if (num == 1)
{
for (int i = 0; i < n; i++)
{
if (books[i].booktitle == s)
{
printf("%07d\n", books[i].id);
flag = true;
}
}
}
else if (num == 2)
{
for (int i = 0; i < n; i++)
{
if (books[i].author == s)
{
printf("%07d\n", books[i].id);
flag = true;
}
}
}
else if (num == 3)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < books[i].keywords.size(); j++)
{
if (books[i].keywords[j] == s)
{
printf("%07d\n", books[i].id);
flag = true;
break;
}
}
}
}
else if (num == 4)
{
for (int i = 0; i < n; i++)
{
if (books[i].publisher == s)
{
printf("%07d\n", books[i].id);
flag = true;
}
}
}
else if (num == 5)
{
for (int i = 0; i < n; i++)
{
if (books[i].pubyear == s)
{
printf("%07d\n", books[i].id);
flag = true;
}
}
}
if (flag == false)printf("Not Found\n");
}
return 0;
}