1、排序算法 描述键盘输入 5 个整数,使用 vector 进行存储,使用 STL 排序算法对元素进行排序(从大到小),再使用 STL 遍历算法输出元素。(元素和元素之间使用空格隔开)输入描述
1、排序算法
描述 键盘输入 5 个整数,使用 vector 进行存储,使用 STL 排序算法对元素进行排序(从大到小),再使用 STL 遍历算法输出元素。(元素和元素之间使用空格隔开) 输入描述: 键盘输入 5 个整数 输出描述: 输出排序后的元素,元素和元素之间使用空格隔开。
#include <iostream>
#include <vector>
// write your code here......
#include<algorithm>
using namespace std;
void print(int x)
{
cout<<x<<" ";
}
int main() {
int num;
vector<int> v;
for (int i = 0; i < 5; i++) {
cin >> num;
v.push_back(num);
}
// write your code here......
sort(v.begin(),v.end(),greater<int>());//greater函数是降序排序
for_each(v.begin(),v.end(),print);
return 0;
}
2、找到数组里的第k大数(C++)
描述 给出一个包含nn个整数的数组aa,使用vector存储。 用STL算法实现输出数组的第kk大数。 输入描述: 第一行两个整数n ,kn,k。(1\le k \le n)(1≤k≤n) 第二行nn个整数表示数组aa。 输出描述: 输出一个数表示答案。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k;
vector<int>a;
// write your code here......
cin>>n>>k;
int num;
for(int i=0;i<n;i++)
{
cin>>num;
a.push_back(num);
}
sort(a.begin(),a.end());//先从小到大排序
cout<<a.at(k-1)<<endl;//at(n)返回第n个元素的引用,第k大的元素下标是k-1
return 0;
}
3、个人所得税计算程序
#include <iostream>
// write your code here......
#include<algorithm>
#include<vector>
#include<iomanip>
using namespace std;
class Employee {
private:
string name;
double salary;
// write your code here......
public:
Employee(string name,double salary)
{
this->name=name,this->salary=salary;
}
string getName()
{
return name;
}
double getSalary()
{
return salary;
}
};
bool cmp(Employee e1,Employee e2)
{
return e1.getSalary()>e2.getSalary();//按薪水从大到小排序
}
void print(Employee& e)
{
double tax=0.0;
double t=e.getSalary()-3500;
if(t>80000)
{
tax=t*0.45-13505;
}else if(t>55000)
{
tax=t*0.35-5505;
}else if(t>35000)
{
tax=t*0.3-2755;
}else if(t>9000)
{
tax=t*0.25-1005;
}else if(t>4500)
{
tax=t*0.20-555;
}else if(t>1500)
{
tax=t*0.1-105;
}else if(t>0)
{
tax=t*0.03;
}else{
tax=0.0;
}
cout<<fixed<<setprecision(1);
cout<<e.getName()<<"应该缴纳的个人所得税是:"<<tax<<endl;
}
int main() {
// write your code here......
Employee e1("张三",6500);
Employee e2("李四",8000);
Employee e3("王五",100000);
vector<Employee>v;
v.push_back(e1);
v.push_back(e2);
v.push_back(e3);
sort(v.begin(),v.end(),cmp);
for_each(v.begin(),v.end(),print);//STL输出函数
return 0;
}