复兴无基础第十八课 语法阶段综合复习 二
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;
}
这里空空如也









有帮助,赞一个