1004
读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
感觉写的有点复杂了,但是主要是练习vector和class
#include <iostream>
#include<vector>
#include<string>
using namespace std;
class st//学生类
{
public:
string name;
string num;
int grade;
};
st max(vector<st> s)//找最大值
{
int max=0;
st s1;
for (int i = 0; i < s.size(); i++)
{
if (max < s[i].grade)
{
max = s[i].grade;
s1 = s[i];
}
}
return s1;
}
st min(vector<st> s)//找最小值
{
int min = 100;
st s1;
for (int i = 0; i < s.size(); i++)
{
if (min > s[i].grade)
{
min = s[i].grade;
s1 = s[i];
}
}
return s1;
}
int main()
{
vector<st> v;
st s,smax,smin;
int all = 0;
cin >> all;
for (int i = 0; i < all; i++)//输入
{
cin >> s.name;
cin >> s.num;
cin >> s.grade;
v.push_back(s);
}
smax = max(v);
smin = min(v);
cout << smax.name << " " << smax.num<<"\n";
cout << smin.name << " " << smin.num;
return 0;
}
1006换个格式输出整数
让我们用字母 B
来表示“百”、字母 S
表示“十”,用 12...n
来表示不为零的个位数字 n
(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234
应该被输出为 BBSSS1234
,因为它有 2 个“百”、3 个“十”、以及个位的 4。
输入格式:
每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。
输出格式:
每个测试用例的输出占一行,用规定的格式输出 n。
分析:比较简单的一道题,因为最多只到三位数,所以可以分三种情况考虑,活用除法和取余即可
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
if (n / 100 != 0)//三位数
{
int i = n / 100;
while (i)
{
cout << "B";
i--;
}
n = n % 100;
if (n / 10 != 0)
{
i = n / 10;
while (i)
{
cout << "S";
i--;
}
}
n = n % 10;
if (n != 0)
{
for (int i1 = 1; i1 <= n; i1++)
cout << i1;
}
}
else if (n / 10 != 0)//两位数
{
int i2 = n / 10;
while (i2)
{
cout << "S";
i2--;
}
n = n % 10;
if (n != 0)
{
for (int i1 = 1; i1 <= n; i1++)
cout << i1;
}
}
else//一位数
{
for (int i3 = 1; i3 <= n; i3++)
cout << i3;
}
return 0;
}