20260415-入门班-期中复习

正在进行… IOI 开始于: 2026-4-20 15:00 3 小时 主持人: 21

函数

函数格式

返回值 函数名 (参数1c,参数2...){
    函数主题
    return 返回值;
}

示例

判断某个数奇偶性的函数

int f(int x){
   if(x%2==0) return 0;
   else return 1;
}
int main(){
   int n;cin>>n;
   if(f(n)==0){
       cout<<"偶数";
   }
   else{
       cout<<"奇数";
   }
}

练习 A 函数练习-1

结构体

在处理数据的过程中,有时候需要储存多种多样的信息。比如一位学生,他有姓名,年龄,学号等等。然而数组只能储存同一种类型的信息,比如int、char、string...

C++结构体是一系列具有相同类型或不同类型的数据构成的数据集合。

结构体格式

struct 类型名 {
    数据类型1 成员变量1;
    数据类型1 成员变量1;   
}[结构体变量名];
struct 已定义的类型名 结构体变量名;

示例

struct student{
   string name;
   int chinease;
   int  math;
   int english;
}s[1005];
struct student ans;
//定义了名为s的学生 1005个,定义了一个叫ans的学生

练习 B-最厉害的学生

排序

冒泡排序

for(int i=1;i<=n;i++){//可以写n-1
    for(int j=1;j<=n-1;j++){
        if(a[j]>a[j+1]){
            swap(a[j],a[j+1]);
        }
    }
}

选择排序

for(int i=1;i<=n;i++){
    int now=a[i];
    for(int j=i;j<=n;j++){
        if(now>a[j]){
            swap(now,a[j]);
        }
    }
    a[i]=now;
}

快速排序

sort(数组名+起始位置,数组名+终止位置+1,自定义函数(不写默认升序));

C-身高排序

栈与队列

栈与队列

栈(stack)是一种特殊的线性表,只能从一端进行插入或者删除操作。这一端被称为栈顶,另一端被称为栈底,栈的特点是后进先出(Last In First Out)

栈操作

stack<int> sta;//定义一个栈

sta.push(x);//向栈顶放入一个 x

cout<<sta.top();//查看栈顶

sta.pop();//丢出栈顶

cout<<sta.size();//查看栈的大小

cout<<sta.empty();//查看栈是否为空

//以上操作复杂度均为O(1)

queue

和栈不同,队列是只能从一端进入,从另一端出去的数据结构

队列操作

queue<int> que;//定义一个存储int类型的队列 名字叫 que

que.push(x);//在队列中加入一个数字

que.front();//返回队列最前面的数字

que.pop();//丢掉队列最前面的数字

que.size();//返回队列里的大小

que.empty();//返回布尔值,是否为空
//以上操作复杂度均为O(1)

D-约瑟夫问题

我们会在赛后检查代码相似度。

状态
正在进行…
规则
IOI
题目
4
开始于
2026-4-20 15:00
结束于
2026-4-20 18:00
持续时间
3 小时
主持人
参赛人数
21