首页 > 其他分享 >26文科跨考北大软微刷题日记-DAY2

26文科跨考北大软微刷题日记-DAY2

时间:2024-11-07 22:20:52浏览次数:1  
标签:std sort 26 cout 软微刷题 int DAY2 数组 printf

昨天学校期中考试,今天更新。
完成进度:
1.语法基础课第二讲(if条件)课后习题已做完
2.打算今晚再看一下408数据结构的6.3_1图的广度优先遍历和6.3_2图的深度优先遍历
做题总结:
1.如何描述 “一个数是另一个数的整数倍”

if( a % b == 0)

2.若出现像python中的字典样式的,如何通过不用if来描述(一般不用if会更简洁)
见【AcWing 660. 零食】

#include <cstdio>
int main() {
    int x, y;
    double price[6] = {0, 4, 4.5, 5, 2, 1.5};
    scanf("%d %d", &x, &y);
    printf("Total: R$ %.2f", price[x] * y);
    return 0;
}

因为x与price是一一对应的,所以可以通过数组来用x索引price,妙!
3.用printf()输出字符串的注意事项
在用%s占位的基础上,输出内容要写成.c_str()
例:想打印字符串x,则写为

printf("%s",x.c_str());

4.if()与else if()含有继承性,如果if()里的不满足,那么随后的 else if()自动要求取if()里面的反面。
5.在printf()中,想要打印%,要连续输出2个%%。
6.很多if()可以存储类似于二叉树的信息表(虽然408没讲过,我也不确定这样总结对不对)
见【AcWing 670. 动物】
7.还是用2个数组模拟python中的字典,(为什么要2个数组呢,第2条不是只用了1个数组吗?)
(因为在第二点中,x的索引是有规律的,而在本例中,x因为无规律则必须借助数组。
2个数组的纽带是他们对应序号的x与地名相同。)
(先找到a[]中x所在的i位置,然后对应查找b[i]所对应的地名)
见【AcWing 671. DDD】

#include<iostream>
#include<string>
using namespace std;
int main()
{
    int x;
    cin >> x ;
    int a[] ={61,71,11,21,32,19,27,31};//务必在定义数组时确保两数组对应位置相同
    string b[]={"Brasilia","Salvador","Sao Paulo","Rio de Janeiro","Juiz de Fora","Campinas",
                "Vitoria","Belo Horizonte"};
    string t="a"; //工具变量t,存在目的:确定输入的x是否在a数组中;

    int i ;
    for(i=0;i<8;i++) {
        if(x == a[i]) {
        t = b[i]; //将a与b联系起来
        break; //程序运行过程中满足if则运行break结束循环,在这里结束for循环;提高运行效率。
        }
    }
    if(t == "a")    printf("DDD nao cadastrado");
    else  cout<<t;

    return 0; 
}

8.三目运算符也可简化if形式(头一次见把 三目运算符用到后面的 cout<<)
很骚~

int main()
{
    double x,y;
    cin >> x >>y;

    if(x==0 && y==0) cout<<"Origem";
    else if(x * y ==0) cout<< (x==0 ? "Eixo Y" : "Eixo X"); // 在坐标轴上
    else if(x > 0) cout<< (y > 0 ? "Q1" : "Q4");
    else cout<< (y > 0 ? "Q2" : "Q3"); // 等价于 else if((x < 0)
}

9.交换位置的函数swap()
本质是3个杯子倒水。

//交换A与C的值
if (C > B && C >A){
    swap = A;
    A = C;
    C =swap;
}

第一步.有水的一杯(A)先倒给空杯(swap)
第二步.刚倒完的杯子(A)一定要接住另一杯没动过的。(A = C)
第三步.把中介杯子送给空杯(C=swap)[ps:实际上不恰当,杯子倒完水后还有水]
10.在主函数main()中,可以在其中的一个if(){写return 0;}直接运行结束(像break)
11.今天才知道cout<<后面可以无限叠加 <<
12.1个printf()的多行输出

printf("%d\n"
"%d\n"
"%d\n",a,b,c);

13.(今天的最重点:sort()函数)

#include <algorithm> // 需要包含这个头文件

sort(first, last, compare);
first 和 last 是迭代器,定义了要排序的范围 [first, last)。last 指向的是序列尾部之后的位置。
compare 是一个可选参数,是一个函数或函数对象,用于定义排序规则。如果省略,则默认按升序排序。
例子:

include <iostream>
#include <algorithm> // 包含 sort
using namespace std;

int main() {
    int arr[] = {5, 3, 6, 8, 9, 1};
    int n = sizeof(arr) / sizeof(arr[0]);

    sort(arr, arr + n); // 默认升序排序

    for (int i = 0; i < n; ++i) {
        cout << arr[i] << " ";
    }
    return 0;
}

std::greater 作为一个比较器,用于判断第一个参数是否应该排在第二个参数之前,基于的是“大于”的关系。因此,当使用 std::greater 作为 std::sort 的比较器时,它会将较大的元素放在较小的元素之前,从而实现降序排列。
如果你希望对一个 std::vector 或其他容器进行升序排列,你应该使用 std::less 作为比较器,或者直接调用 std::sort 而不指定第三个参数,因为默认情况下 std::sort 使用的就是 std::less,即按升序排列。
PS:屯个仓,这个greater的仿函数的代码现在看不懂,先贴在这里,以后学到函数再来反攻。

//AI给的解释
template< class T = void >
struct greater : binary_function <T,T,bool> {
  bool operator()(const T& x, const T& y) const {
    return x > y;
  }
};

从上面的定义可以看出,std::greater 是一个模板类,它重载了 operator(),
接受两个参数 x 和 y,并返回 x > y 的结果。这正好符合 std::sort 所需的比较器形式,
即给定两个元素,返回 true 如果第一个应该放在第二个前面。

标签:std,sort,26,cout,软微刷题,int,DAY2,数组,printf
From: https://www.cnblogs.com/ghxwin/p/18534120

相关文章

  • 26文科跨考北大软微刷题日记-DAY1
    这其实是2024年11月5号完成的,今天刚想起来自己还有个博客园账号(你敢信这是我大一在网上搜政治经济学期末考题时发现的宝藏网站),就一并发到园子里了。汇报下本人情况以及考研408进度:1.末九经济学大三,高中物化生。自认为经济学太虚浮(他们都在妄想拟合现实,而且很多假设都是他们的yy......
  • 【STM32】项目实战——OV7725/OV2604摄像头颜色识别检测(开源)
     本篇文章分享关于如何使用STM32单片机对彩色摄像头(OV7725/OV2604)采集的图像数据进行分析处理,最后实现颜色的识别和检测。目录一、什么是颜色识别1、图像采集识别的一些基本概念1. 像素(Pixel)2. 分辨率(Resolution)3. 帧率(FrameRate)4. 颜色深度(ColorDepth)5. ......
  • HTC Vive SDK:虚拟现实UI设计教程_2024-07-26_10-41-57.Tex
    HTCViveSDK:虚拟现实UI设计教程环境设置安装HTCViveSDK在开始虚拟现实UI设计之前,首先需要安装HTCViveSDK。以下是安装步骤:访问HTCVive开发者网站:前往HTCViveDeveloper网站,找到SDK下载页面。下载SDK:选择适合您操作系统的SDK版本进行下载。通常,SDK支持Windows和Li......
  • 基于JAVA的在线购物平台设计与实现-计算机毕设 附源码 26720
    基于JAVA的在线购物平台设计与实现摘要基于JAVA的在线购物平台设计与实现是一个涉及到软件开发和电子商务的综合课题。在这样的平台上,用户可以浏览商品、将商品加入购物车、进行下单购买等操作。为了实现这一功能,需要考虑到前后端的交互、数据库的设计、安全性和用户体......
  • My_SQL day2
    知识点一:mysq查询方法    排序    限制    去重    模糊查询    范围查询    聚合函数    分组知识点二:连接查询    1.内连接    2.外连接知识点一:mysql查询方法isnull      ......
  • 26服务管理(启动、停止、重启服务)
    每天五分钟学Linux|第二十六课:服务管理(启动、停止、重启服务)大家好!欢迎再次来到我们的“每天五分钟学Linux”系列教程。在前面的课程中,我们学习了如何通过源码编译来安装软件。今天,我们将探讨如何管理和控制Linux系统中的服务。服务是指在后台运行的应用程序,例如Web服务......
  • AI人工智能学习-Day2
    人工智能应用范畴脑科学认知科学心理学语言学逻辑学哲学计算机科学人工智能包含领域机器学习MachineLearning数据挖掘Databases模式识别神经计算NeurocompatingAI、机器学习、深度学习的关系人工智能包含机器学习,机器......
  • # 20222326 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    1.实验内容一、恶意代码文件类型标识、脱壳与字符串提取对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;(2)使用超级巡警脱壳机等脱壳软件,......
  • LeetCode3264[K次乘运算后的最终数组I]
    题目链接LeetCode3264[K次乘运算后的最终数组I]详情实例实例1实例2提示题解思路先找到最小值然后对最小值进行操作最后输出容器代码classSolution{public:intfindVecMinNumIndex(vector<int>nums)//找出最小值的下标{inti=0,iMin......
  • AI预测体彩排3采取888=3策略+和值012路+胆码+通杀1码测试11月6日升级新模型预测第126
             经过100多期的测试,当然有很多彩友也一直在观察我每天发的预测结果,得到了一个非常有价值的信息,那就是9码定位的命中率非常高,已到达90%的命中率,这给喜欢打私菜的朋友提供了极高价值的预测结果~当然了,大部分菜友还是走的正常渠道,因此,得想办法进行缩水,尽可能少的......