优化下列代码 #include<iostream> #include<bits/stdc++.h> using namespace std; struct Student { string name; int scroe; }a[7]; bool compare (Student.scroe,Student.scroe) { return a.scroe>b.scroe; } int main() { int m; cin>>m; for(int i=0;i<m;i++) { cin>>a[i].name; } for(int i=0;i<m;i++) { cin>>a[i].scroe; } sort(a[0].scroe,a[m-1].score,compare); for(int i=0;i<m;i++) { cout<<a[i].name<<" "; } }
时间: 2023-07-31 13:09:42 浏览: 374
#include
struct Student { string name; int score; };
bool compare(const Student& a, const Student& b) { return a.score > b.score; }
int main() { int m; cin >> m;
vector<Student> students(m);
for (int i = 0; i < m; i++) {
cin >> students[i].name;
}
for (int i = 0; i < m; i++) {
cin >> students[i].score;
}
sort(students.begin(), students.end(), compare);
for (int i = 0; i < m; i++) {
cout << students[i].name << " ";
}
return 0;
}
相关问题
#include<bits/stdc++.h> #include <stdio.h> string a; int main() { cin>>a; cout<<a; return 0; }为什么报错
这段代码中出现错误的原因可能是:
错误的头文件引用:
#include<bits/stdc++.h>
在标准C++库中并不存在。如果你想包含所有的头文件,应该直接写#include <iostream>
,然后自己添加其他需要的头文件,例如#include <string>
。字符串类型不匹配:
string a;
和cin>>a;
需要匹配。如果bits/stdc++.h
中没有定义string
,你可能需要使用std::string
,或者如果你的环境中支持,也可以使用std::getline(cin, a)
从输入流读取整个行。缺少命名空间:
std::cout
和std::cin
是在std
命名空间下的,所以在使用之前你需要加上using namespace std;
或者指定完整名称,如std::cout
。
修正后的代码可能会像这样:
#include <iostream>
#include <string>
std::string a;
int main() {
std::cin >> a;
std::cout << a;
return 0;
}
相关推荐












