复兴无基础第十八课 语法阶段综合复习 二
2025-10-18 20:21:58
发布于:上海
T1【阶段复习】元音字母统计
#include<iostream>
#include<string>
using namespace std;
int main(){
//定义标记标记元音字母出现的个数
int a = 0, e = 0, I = 0, o = 0, u = 0;
string str;
cin>>str;
int len = str.length();
//循环遍历string数组,找到元音字母的个数
for (int i = 0; i < len; i++){
if(str[i]=='a')a++;
else if(str[i]=='e')e++;
else if(str[i]=='i')I++;
else if(str[i]=='o')o++;
else if(str[i]=='u')u++;
}
cout << "a:" << a << endl;
cout << "e:" << e << endl;
cout << "i:" << I << endl;
cout << "o:" << o << endl;
cout << "u:" << u << endl;
return 0;
}
T2【阶段复习】字母统计
#include <iostream>
using namespace std;
// 把小写字母做个对应,然后可以用桶排序的思想来统计每个字母出现的次数
// 对应 a->0,b->1……z->25
// cnt[i]: 第 i 个小写字母出现的次数
int cnt[26];
int main() {
//定义字符串s,并且遍历字符串s,将出现的字符次数+1
string s;
cin >> s;
for (int i = 0; i < s.size(); i++) {
int k = s[i] - 97;
// 第 k 个小写字母出现的次数加 1
cnt[k]++;
}
for (int i = 0; i <= 25; i++) {
char c = i + 'a';
if (cnt[i] > 0) cout << c << ":" << cnt[i] << endl;
}
return 0;
}
T3【阶段复习】成绩排序
#include <iostream>
#include <algorithm>
using namespace std;
struct node{
int id;
int a;
};
node arr[10002];
bool cmp(node x,node y){
if(x.a!=y.a)return x.a>y.a;
else return x.id<y.id;
}
int main() {
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>arr[i].a;
arr[i].id=i;
}
sort(arr+1,arr+1+n,cmp);
for(int i=1;i<=n;i++){
cout<<arr[i].id<<" ";
}
return 0;
}
T4【阶段复习】交错输出
#include<iostream>
#include<string>
using namespace std;
string s1,s2,s3;
int main(){
cin>>s1>>s2;
//for循环将s1和s2交错输出,先输出第i位的s1,然后输出第i位的s2
for(int i=0;i<s1.size();i++){
cout<<s1[i]<<s2[i];
}
return 0;
}
T5【阶段复习】星际救援
#include<iostream>
#include<algorithm>
using namespace std;
//救援人数x、地区编号y、定义a数组,存放每个人所在的地区编号
int x,y;
int a[50005];
//定义结构体,用来存放地区编号和人数
struct node{
int id,num;
}s[50005];
//定义排序规则,人数多先救援,人数相同地区编号前的先救援
bool cmp(node x,node y){
if(x.num==y.num) return x.id<y.id;
else return x.num>y.num;
}
int main(){
//输入每个人对应的地区号,累计到地区学生数
cin>>x;
for(int i=1;i<=x;i++){
cin>>y;
a[y]++;
}
int idx=1;
for(int i=1;i<=50000;i++){
if(a[i]>0){
s[idx].id=i;
s[idx].num=a[i];
idx++;
}
}
//根据营救规则排序输出
sort(s+1,s+idx,cmp);
cout<<s[1].id;
for(int i=2;i<idx;i++){
cout<<"->"<<s[i].id;
}
return 0;
}
这里空空如也
有帮助,赞一个