字符串
//本题主要是要掌握字符串的输入输出流,逐个判断等等基本操作方式
//getline可以读取一行字符串,可以含空格,但不能有换行
//或者也可以用char字符数组的方式来实现
//其他读入字符串的方式还有fgets(str,n,stdin),注意fgets可以读入换行
#include <iostream>
#include <string>
#include <cstdio>
using namespace std;
int main(){
string s;
int num = 0;
while(getline(cin,s)){
for(int i = 0;i < s.size();i ++){
if(s[i] == '#') break;
if(s[i] >= '0' && s[i] <= '9') num ++;
}
cout << num << endl;
}
}
成绩排名
//本题要求稳定排序,我自己写了一个冒泡降序排序代码,可更改为升序
//其实也可以用C++中内含的stable_sort
#include <iostream>
#include <string>
using namespace std;
const int N = 10000;
struct student{
string name;
int score;
}P[N];
void swap(student &a,student &b){
student t = a;
a = b;
b = t;
}
void bubblesort(student P[],int n){
for(int i = 0;i < n;i ++){
bool flag = false;
for(int j = 0;j < n - i - 1;j ++){
if(P[j].score < P[j+1].score){
swap(P[j],P[j+1]);
flag = true;
}
if(!flag) break;
}
}
}
int main(){
int n;
cin >> n;
for(int i = 0;i < n;i ++){
cin >> P[i].name >> P[i].score;
}
bubblesort(P,n);
for (int i = 0; i < n; i++) {
cout << P[i].name << " " << P[i].score << endl;
}
return 0;
}
//这里再附上另一版本的排序,通过自己写sort条件来实现稳定排序
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
const int MAX_STUDENTS = 10000;
// 定义学生结构体,包含姓名和成绩两个成员
struct Student {
string name;
int score;
};
// 自定义比较函数,用于告诉stable_sort按照成绩来比较学生结构体
bool compareByScore(const Student& a, const Student& b) {
return a.score < b.score;
}
int main() {
int numStudents;
cout << "请输入学生的数量: ";
cin >> numStudents;
Student students[MAX_STUDENTS];
// 循环读取每个学生的姓名和成绩
for (int i = 0; i < numStudents; ++i) {
cout << "请输入第 " << (i + 1) << " 个学生的姓名和成绩(用空格隔开): ";
cin >> students[i].name >> students[i].score;
}
// 使用stable_sort按照成绩对学生信息进行稳定排序
stable_sort(students, students + numStudents, compareByScore);
// 输出排序后的学生姓名和成绩信息
cout << "按照成绩排序后的学生信息如下:" << endl;
for (int i = 0; i < numStudents; ++i) {
cout << students[i].name << " " << students[i].score << endl;
}
return 0;
}
计算日期
//这道题还是很简单的,直接y总三板斧就行
#include <iostream>
#include <string>
using namespace std;
bool is_leap(int n){
if((n % 400 == 0)||(n % 4 == 0 && n % 100 != 0)) return true;
else return false;
}
const int month[13] = {
31,28,31,30,31,30,31,31,30,31,30,31
};
int main(){
int year,m,day;
cin >> year >> m >> day;
int num = 0;
for(int i = 1;i < m;i ++){
if(i == 2 && is_leap(year)) num += month[i] + 1;
else num += month[i];
}
num += day;
cout << num << endl;
return 0;
}