第1题
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
cout << n % 3 << endl;
return 0;
}
第2题
解法一:
本题使用string比较简单。因为string重载了==和!=操作符,可以直接比较两个字符串是否相等。
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
string s[n];
for(int i = 0; i < n; i++)
{
cin >> s[i];
}
string virus;
cin >> virus;
for(int i = 0; i < n; i++)
{
if(s[i] != virus)
{
cout << s[i] << endl;
}
}
return 0;
}
解法二:
可以使用strcmp函数来进行比较。注意,strcmp包含在<cstring>和<string.h>中,而不是包含在<string>中。
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int n;
cin >> n;
char a[101][101];
char v[101]; // 病毒
for(int i = 0; i < n; i++)
{
cin >> a[i];
}
cin >> v;
for(int i = 0; i < n; i++)
{
if(strcmp(a[i], v) != 0)
{
cout << a[i] << endl;
}
}
return 0;
}
第3题
#include <iostream>
using namespace std;
struct student
{
int id;
float score;
int rank;
};
int main()
{
int n;
cin >> n;
student s[n];
for(int i = 0; i < n; i++)
{
cin >> s[i].id >> s[i].score;
}
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n - 1 - i; j++)
{
if(s[j].score < s[j+1].score)
{
swap(s[j], s[j + 1]);
}
}
}
s[0].rank = 1;
for(int i = 1; i < n; i++)
{
s[i].rank = i + 1;
if(s[i].score == s[i - 1].score)
{
s[i].rank = s[i - 1].rank;
}
}
for(int i = 0; i < n; i++)
{
cout << s[i].id << ' ' << s[i].score << ' ' << s[i].rank << endl;
}
return 0;
}
完整答案请加微信307591841或QQ307591841
公众号.jpg
网友评论