复习学习目标
输入输出
分支结构
多分支和switch语句
循环语句
练习1
一维数组
练习
二维数组
字符数组字符串
函数
sort排序
结构体
成绩排序
【题意分析】 根据成绩从高到低排序,同成绩学号小的排在前面的顺序进行排序 【思路分析】 1.在输入成绩的时候,将每一个人的id等同于当前的i 2.然后按照成绩高的在前,成绩相同的学号小的方式对所有人的成绩排序。 3.输出排序完毕后的数组 【参考代码】 #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; }View Code
指针
[【阶段复习】元音字母统计]
【题意分析】 题目中我们需要去判断我们的元音字母(a,e,i,o,u)出现了多少次 【思路分析】 在for循环遍历我们的字符串的每一位,其中用if判断是否是我们的元音字母,是的话用标记存储当前元音字母出现多少次 定义标记标记元音字母出现的个数 循环遍历string数组,找到元音字母的个数 【参考代码】 #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; }View Code
【题意分析】 需要找到字符串中每一位字母出现多少次,然后按照字母表顺序输出 【思路分析】 把小写字母做个对应,然后可以用计数数组的方法来统计每个字母出现的次数。 其中:a->0,b->1.....z->25 定义全局数组cnt,cnt[i]表示第i个小写字母出现的次数。 定义字符串s,并且遍历字符串s,将出现的字符次数+1 最后循环遍历每一个字母,如果当前字母的数量不是0,那么将当前字母和个数输出 【参考代码】 #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; }View Code
标签:数组,05,int,字母,U3,++,C++,str,元音 From: https://www.cnblogs.com/jayxuan/p/17913409.html