选择
C y=123是个赋值式子,始终为真,仅需判断x<4可以执行几次
printf输出格式:
%[标志] [输出最小宽度] [.精度] [数据长度] 数据类型字符
B
%5.3 表示最小输入宽度是5,不够补零或者空格
3表示精度为3 如果是整形,表示最少显示3位,原数位数多就按原数。
如果是浮点型表示小数点后最少显示3位。
如果是字符串,表示最多输入3个。
B
j=0为假
D
&&操作符 如果前面为假 后面的条件将不会执行 ||如果前面条件为真,那么后面条件将不会执行。
C
B 1,0,0,0
3,2,0,0
4,5,6,0
0,0,0,0
11 : 0000 1011
10: 0000 1010
A ^=运算符优先级低 右边全部执行完毕再执行
D ++运算符优先级大于*操作符
A 需要手动置空
编程
思路就是 最小的 第二大的 最大的 合成一组
所以每次取的都是排序后的倒数第2个
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int n;
cin>>n;
int nums=3*n;
vector<int>grade(nums);
for(int i=0;i<nums;i++)
{
cin>>grade[i];
}
sort(grade.begin(),grade.end());
long long sum=0;
for(int i=0;i<n;i++)
{
sum+=grade[grade.size()-(i+1)*2];
}
cout<<sum<<endl;
return 0;
}
哈希
把出现过得字符对应的ASCII码值++ 当数组中字符对应下标为0时才更新
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1,s2;
getline(cin,s1);
getline(cin,s2);
string ans;
int arr[256]={0};
for(int i=0;i<s2.size();i++)
{
arr[s2[i]]++;
}
for(int j=0;j<s1.size();j++)
{
if(arr[s1[j]]==0)
{
ans+=s1[j];
}
}
cout<<ans<<endl;
return 0;
}