算法复习笔记

这里写自定义目录标题

  • C/C++快速入门
    • 头文件
    • 主函数
    • 输入输出函数
    • 变量类型
    • 注意
    • if语句
    • switch语句
    • 循环结构
      • while语句
      • do...while语句
      • for语句
      • break和continue语句
    • 数组
      • 注意
    • string.h头文件
    • 指针
    • 引用
    • 浮点数的比较

C/C++快速入门

头文件

通过#include<x.h>写法来写,例如:

#include<stdio.h> //standard input output

如果使用数学公式之类的函数的话,则就需要使用math.h头文件;字符串的话,则使用string.h。

主函数

程序的执行都是从主函数开始,一个程序只能有一个主函数。

int main(){return 0;
}

输入输出函数

使用scanf和printf函数实现,例如:

int a,b;
scanf("%d%d",&a,&b);
printf("%d",a+b);

变量类型

有四种基本数据类型,分别为整型(int),浮点型(float、double),字符型(char),布尔型(bool)。

数据类型输出格式输入格式
整型int%d%d
浮点型float、double(一般使用)%ffloat为%f,double为%lf
字符型char%c%c
布尔型bool%d

注意

  1. 小写字母要比大写字母的ASCII码值大32。
  2. 字符在计算机里面是按照ASCII码进行存储的,所以也可以把对应的ASCII码赋值给字符。
  3. 字符串常量可以作为初值赋给字符数组,并使用%s格式进行输出。
#include<stdio,h>
int main(){char str[15]="Hello World!";printf("%s",str);return 0;
}
  1. bool类型在C++里面可以直接使用,但是C里面需要添加头文件stdbool.h。

  2. 强制类型转换的格式: (新类型名) 变量名

  3. 使用define可以定义常量,它的值不允许在使用的过程中进行改变,否则会出错。

#define 标识符 常量
例如:#define MAXSIZE 100
  1. 三目运算符的话,也就是需要三个参数的运算符,格式如下:A ?B:C(如果A成立,那么会返回B 的结果;如果为假,那么返回C的结果)
  2. 使用getchar和putchar可以输入,输出字符。
char c;
c=getchar();
putchar(c);
  1. 注释的话可以使用/**/或者// 进行注释。
  2. typedef可以给复杂数据类型起别名。
  3. 常用的math函数,例如:
fabs(double x); 
abs(int x);
pow(double r,double p) // 返回r^p
sqrt(double x); // 返回变量x的算术平方根

if语句

格式如下:

if(a=b){;
}else if(a>b){;
}else{;
}

switch语句

通常在分支条件较多时会显得比较精炼。例如:

switch(表达式){case 常量表达式1:... break;case 常量表达式2:... break;default:...
}

循环结构

while语句

格式如下:

while(条件A){  // 如果条件A满足的,则执行下面循环,否则不执行...
}

do…while语句

do{  // 先执行循环,最后判断满足不满足,满足继续执行,否则退出循环。...
}while(条件A);

for语句

for(表达式A;表达式B;表达式C){...
}
  1. 在for循环开始前,首先执行表达式A。
  2. 判断表达式B是否成立:若成立,执行省略号内容;否则,退出循环。
  3. 在省略号内容执行完毕后,执行表达式c,之后回到2.

break和continue语句

break语句是结束整个循环,continue语句是结束本次循环。

数组

数组就是把相同数据类型的变量组合在一起而产生的数据集合,格式定义如下:

数据类型 数组名[数组大小];
例如: int array[10];

注意

  1. 数组的话可以根据下标进行访问数据,但是切记数组下标是从0-MaxSize-1
  2. 数组可以在刚开始的时候整体赋值 例如:int array[10]={0};
  3. 如果使用字符数组的话,可以刚开始把一个字符串赋值给一个数组进行初始化。
  4. 使用%s读取字符串的话,以空格或换行来识别一个字符串的结。
  5. gets用来输入一行字符串,以换行符\n作为输入结束,puts直接输出一行字符串,把一维数组(或二维数组的一维)在界面上输出,并紧跟一个换行。
  6. 字符数组的末尾都有一个空字符\0,以表示存放的字符串的结尾,会自动增加,因此设置字符数组的时候,要比实际存储字符串的长度至少多1。
  7. 如果使用getchar读取字符后要在最后加上\0,用来标志结束。

string.h头文件

函数作用使用方法
strlen()得到字符数组中第一个\0前的字符的个数strlen(字符数组)
strcpy()把一个字符串复制给另一个字符串strcpy(字符数组1,字符数组2)
strcat()把一个字符串接到另一个字符串的后面(把字符数组2接到一个字符数组1的后面)strcat(字符数组1,字符数组2)
strcmp()返回两个字符串大小比较的结果 如果字符数组1<字符数组2,则返回一个负整数,相等则返回0,大于则返回一个大于0的数strcmp(字符数组1,字符数组2)

指针

void swap(int* a,int* b){int* temp=a;a=b;b=temp;
}

函数参数的传送方式是单向一次性的,main函数传给swap函数的“地址”其实是一个“无符号整型”的数,其本身也跟普通变量一样只是“值传递”,swap函数对地址本身进行修改并不能对main函数里的地址修改,能够使main函数里的数据发生变化的只能是swap函数中对地址指向的数据进行的修改。对地址本身进行修改其实跟之前对传入的普通变量进行交换的函数是一样的作用,都只是副本,没法对数据产生实质性的影响,即相当于把int*看作一个整体,传入的a和b都只是地址的副本。

引用

引用,相当于给原变量起了个别名,旧名字和新名字其实都是同一个东西,对引用变量的操作就是对原变量的操作。(保存文件时,使用.cpp,因为是c++里面的语法)

浮点数的比较

计算机中采用有限的二进制编码,因此浮点数在计算机中的存储并不总是精确的。

  1. 判断相等 只要两个的绝对值之差小于1e-8(1*10^-8)
  2. 判断大于 两个绝对值之差大于1e-8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/609902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024PMP考试新考纲-【过程领域】近期典型真题和超详细解析

前面的文章&#xff0c;华研荟讲解了三十多道PMP新考纲下的【人员People领域】的近年真题&#xff0c;这篇文章开始为大家分享【过程Process领域】的新考纲下的真题&#xff0c;进一步帮助大家体会和理解新考纲下PMP的考试特点和如何应用知识来解题&#xff0c;并且举一反三&am…

【RDMA】RDMA事件通知机制详解

RDMA通过kernel-bypass和协议栈offload两大核心技术&#xff0c;实现了远高于传统TCP/IP的网络通信性能。尽管RDMA的性能要远好于TCP/IP&#xff0c;但目前RDMA的实际落地业务场景却寥寥无几&#xff0c;这其中制约RDMA技术大规模上线应用的主要原因有两点&#xff1a; 主流互…

thinkphp学习06-连接数据库与模型初探

新建数据库 CREATE DATABASE tp6stu01 CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;创建表和数据 DROP TABLE IF EXISTS tp_user; CREATE TABLE tp_user (id mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 自动编号,username varchar(20) CHARACTER SET utf8 COLL…

Web APIs知识点讲解

学习目标: 能获取DOM元素并修改元素属性具备利用定时器间歇函数制作焦点图切换的能力 一.Web API 基本认知 1.作用和分类 作用: 就是使用 JS 去操作 html 和浏览器分类&#xff1a;DOM (文档对象模型)、BOM&#xff08;浏览器对象模型&#xff09; 2.DOM DOM(Document Ob…

SpringBoot-开启Admin监控服务

SpringBoot-Admin是一个用于管理和监控SpringBoot应用程序的开源项目。它提供了一个易于使用的Web界面&#xff0c;可以实时监控应用程序的健康状况、性能指标、日志和环境配置等信息。通过Actuator模块来收集和暴露应用程序的监控信息&#xff0c;使用Web Socket或者Server-Se…

AUTOSAR从入门到精通-Autosar 中断机制(二)

目录 前言 原理 中断处理 中断处理流程 Cat1 中断处理流程

C#PDF转Excel

組件 Spire.Pdf.dll, v7.8.9.0 【注意&#xff1a;版本太低的没有此功能】 在Visual Studio中找到参考&#xff0c;鼠标右键点击“引用”&#xff0c;“添加引用”&#xff0c;将本地路径debug文件夹下的dll文件添加引用至程序。 界面图&#xff1a; 1个label&#xff0c;1…

Uibot (RPA设计软件)微信群发助手机器人————课前材料二

(本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~&#xff09; 紧接着小北的前两篇博客&#xff0c;友友们我们即将开展新课的学习~RPA 培训前期准备指南——安装Uibot(RPA设计软件&#xff09;-CSDN博客https://blog.csdn.net/Zhiyilang/article/details/1…

【QML COOK】- 005-粒子系统(ParticleSystem)

1. 编辑main.qml import QtQuick import QtQuick.ParticlesWindow {width: 800height: 800visible: truetitle: qsTr("Hello World")color: "#000000"MouseArea {id: mouseAreaanchors.fill: parentonClicked: {hahaEmitter.pulse(2000)}}ParticleSystem {…

黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(上)准备工作、部门管理

一、准备工作 1.明确需求 根据产品经理绘制的页面原型&#xff0c;对部门和员工进行相应的增删改查操作。 2.环境搭建 将使用相同配置的不同项目作为Module放入同一Project&#xff0c;以提高相同配置的复用性。 准备数据库表&#xff08;dept, emp&#xff09; 资料中包含…

2023.10.13 求逆序对,二分,求极小值

求逆序对 划分归并对数组进行调整的合理性在于 每次划分数组后&#xff0c;在前面数组的元素与后面数组元素相对次序不会颠覆&#xff0c;就是前面元素在前面划分出的数组里随便调整&#xff0c;也依然在后面数组的任意元素里的前面&#xff0c;而不可能调整到后面数组的任意…

基于模块自定义扩展字段的后端逻辑实现(一)

目录 一&#xff1a;背景介绍 二&#xff1a;实现过程 三&#xff1a;字段标准化 四&#xff1a;数据存储 五&#xff1a;数据扩展 六&#xff1a;表的设计 一&#xff1a;背景介绍 最近要做一个系统&#xff0c;里面涉及一个模块是使用拖拉拽的形式配置模块使用的字段表…

Android Studio导入项目 下载gradle很慢或连接超时,提示:Read timed out---解决方法建议收藏!

目录 前言 一、报错信息 二、解决方法 三、更多资源 前言 一般来说&#xff0c;使用Android Studio导入项目并下载gradle的过程应该是相对顺利的&#xff0c;但是有时候会遇到下载速度缓慢或连接超时的问题&#xff0c;这可能会让开发者感到头疼。这种情况通常会出现在网络…

如何彻底卸载 Microsoft Edge?

关闭 Microsoft Edge 浏览器和所有正在运行的进程。 按下 Ctrl Shift Esc 键打开任务管理器。在任务管理器中&#xff0c;找到所有正在运行的 Microsoft Edge 进程。右键单击每个进程&#xff0c;然后选择“结束任务”。 导航至 Microsoft Edge 的安装目录。 默认情况下&…

淘宝商品详情API:电商数据的宝藏之源

在当今的电商时代&#xff0c;数据已经成为企业和商家最宝贵的资产之一。通过数据&#xff0c;商家可以更好地了解市场需求、消费者行为以及竞品情况&#xff0c;从而制定更加精准的营销策略和优化运营。而淘宝商品详情API&#xff08;taobao.item_get&#xff09;作为淘宝平台…

c++学习:异常处理机制

c语言的错误处理方式 返回值 return 0; 全局错误标志 int test() {int fd open ("1.txt",O_RDONLY);if(fd -1){//open打开文件错误会返回错误码 errnoperror()://或者用strerror可以打印出错误return -1;}return 0; } 缺点 当函数有多级嵌套的时候&#xff0c;…

Python综合数据分析_RFM用户分组模型

文章目录 1.导入数据2.月度订单数据可视化3.数据清洗4.特征工程5.构建User用户表6.求R值7.求F值8.求M值9.显示R、F、M值的分布情况10.显示手肘图辅助确定K值11.创建和训练模型12.给R值聚类13.给聚类后的层级排序14.继续给F、M值聚类&#xff0c;并排序15.为用户整体分组画像 1.…

Hero引擎:数字创意的奇迹

Hero引擎&#xff1a;数字创意的奇迹 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;让我们一同探索引擎领域的璀璨明星——Hero引擎。从游戏开发到…

安装配置Flink

安装配置Flink 1.上传安装包到Linux 2.解压到指定路径 tar -zxf ./flink-1.14.0-bin-scala_2.12.tgz /usr/local/src/3.修改环境变量 vi ~/.bashrc#往最后加入 export FLINK_HOME /usr/local/src/flink-1.14.0/ export PATH$PATH:$FLINK_HOME/bin#激活环境变量 source ~/.…

BOM简介

1.1 常用的键盘事件 1.1.1 键盘事件 键盘事件触发条件onkeydown按键被按下时触发onkeypress按键被按下时触发onkeyup按键被松开时触发 注意&#xff1a;addEventListener事件不需要加on <script>//1. keydown 按键按下的时候触发,按任意键都触发&#xff0c;也可以识…