scau:程序设计与算法基础 学习笔记

本文介绍了C++中的pair容器用法,展示了如何通过pair组合两个值并进行操作,以及如何使用递归实现数字的逆序输出。

一、C++和SQL

1.pair用法

#include <iostream>
#include <cstdio>
#include <utility>
using namespace std;
//pair是一个将两个值合成一组的容器,
//这两个值可以是同类型的也可以是不同类型的,
//它们分别被称为first和second。pair广泛用于
//那些需要将两个密切相关的值存储为一个单元的场合。
int main()
{
    pair<int,int>p1;
    scanf("%d%d",&p1.first,&p1.second);
    printf("p1:(%d,%d)\n",p1.first,p1.second);
    pair<float,float>point1(3.5,5.5);//初始化它的first和second值为3.5和5.5
    pair<float,float>point2,zx;//定义了两个pair<float, float>类型的对象,point2和zx,此时它们还未被初始化。
    point2=make_pair(3.5,6.6);//使用make_pair函数创建一个临时的pair对象,并将它赋值给point2。point2的first和second值分别被初始化为3.5和2.8
    printf("point1:(%.2f,%.2f)\n",point1.first,point1.second);
    printf("point2:(%.2f,%.2f)\n",point2.first,point2.second);
    zx=point1<point2?point1:point2;
    //这里使用了条件运算符(?:)来比较point1和point2。比较时数据类型需要相同
    //注意,pair的比较是首先比较first值,如果first相等,则比较second值。
    //根据point1和point2的值,zx会被赋予point1和point2中较小的那一个的值
    printf("zx:(%.2f,%.2f)\n",zx.first,zx.second);
    return 0;
    //pair的主要作用是将两个值组合成一个单元,便于管理和使用。这在很多场景下非常有用,
    //比如需要返回两个值的函数、存储有两个相关联信息的数据结构等
}

二、递归

1.使用递归思路逆序输出数字

方法一:先将数字全部逆序,再输出

#include <iostream>
using namespace std;
typedef long long ll;
ll f(int n, int s = 0)
{
    s=s*10+n%10;
    n=n/10;
    if (n == 0)
    {
        return s; // 当n为0时,递归结束,返回累加的逆序结果
    }
    else
    {
        return f(n,s);
    }
}

int main() {
    int n;
    cin >> n;
    cout << f(n) << endl;
    return 0;
}

 方法二:逐个输出逆序之后的数字

#include <iostream>
using namespace std;
// 函数用于递归地逆序输出数字
void reverseNumber(int n) 
{
    // 基本情况:当数字为0时,递归结束
    if (n == 0) return;

    // 输出数字的最后一位
    cout << n % 10;

    // 递归调用,去掉已经输出的最后一位
    reverseNumber(n / 10);
}

int main() 
{
    int number;
    cin >> number;

    reverseNumber(number);
    cout << endl;

    return 0;
}

### 关于华南农业大学程序设计基础课程的相关资料 #### 一、课程学习资源概述 华南农业大学的程序设计基础课程通常涵盖了C语言或其他编程语言的基础知识,适合初学者入门。该课程强调实践能力培养,通过理论实验相结合的方式提升学生的编程技能[^1]。 #### 二、教学大纲要点 根据相关参考资料,程序设计基础的教学大纲可能包括以下几个方面: - **基础知识讲解**:介绍变量、数据类型、运算符、控制结构等内容。 - **函数模块化编程**:深入探讨如何定义和调用函数,以及实现代码重用的重要性。 - **数组指针**:重点掌握数组的操作方法及其在内存中的存储方式;了解指针的概念及应用。 - **文件处理**:学习基本的文件读写操作,能够完成简单的数据存储任务。 - **综合项目训练**:设置多个小型项目让学生动手实践所学知识,提高解决实际问题的能力[^2]。 #### 三、实验指导说明 为了巩固课堂上学到的内容,学校安排了一系列配套实验活动。以下是部分常见类型的练习题目描述: - 编程题:要求按照指定需求编写完整的源码片段; - 调试纠错题:给出一段存在错误的代码,请找出其中的问题所在并修正之; - 综合分析题:结合具体应用场景提出解决方案,并论证其可行性[^3]。 #### 四、管理系统功能简介 除了传统的纸质教材外,现代教育还利用信息化手段辅助教学工作开展。例如,在线平台提供了丰富的交互式工具供师生交流互动使用。其中一个典型例子便是基于Vue框架构建的学生信息系统,它允许管理员执行诸如添加新记录、编辑现有条目之类的管理动作,同时也支持按不同字段检索特定的信息项[^4]。 ```python # 示例代码展示列表遍历逻辑 def process_student_data(students): result = [] for student in students: if validate(student): # 验证单个student对象的有效性 formatted_info = format_output(student) # 将有效数据转换成标准格式 result.append(formatted_info) return result ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zero_019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值