算法笔记(二)

选择结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
不需要加大括号
在这里插入图片描述

循环语句

注意do……while的while的末尾是有分号的

在这里插入图片描述
在这里插入图片描述

数组

在这里插入图片描述
在这里插入图片描述
数组大小必须是整型变量

在这里插入图片描述
在这里插入图片描述

冒泡排序

本质在于交换

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


void BubbleSort(int arr[], int n)
{
	for (int i = 0; i < n - 1; i++)
	{
		for (int j = 0; j < n - i - 1; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
}



在这里插入图片描述
在这里插入图片描述
注意这一点:如果数组的很大,就可以把数组定义到主函数的外面

memset — 对数组中每一个元素赋相同的值

赋相同值的俩种方法:①memset 头文件(string.h)
②fill 头文件(algorithm)
在这里插入图片描述

在这里插入图片描述
如果赋值为1的话:

#include<stdio.h>
#include<string.h>
int main() {
	int a[5];
	memset(a, 1, sizeof(a));
	for (int i = 0; i < 5; i++) {
		printf("%d ", a[i]);
	}
 }

结果:
在这里插入图片描述

字符数组

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:

  • gets识别换行符\n作为输入结束
  • scanf完一个整数之后,如果要使用gets,需要先用getchar接收整数之后的换行符

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注意下面的俩点(易错)

在这里插入图片描述
尤其是第二点,当不是使用scanf的%s格式或者gets函数输入字符串的时候,要在每个字符串之后加’\0’,否则printf和puts输出字符串的时候会乱码。因为printf和puts输出字符串的时候是以’\0’为结束的标志的。

string.h头文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意strcmp的结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:
是把字符数组2复制给字符数组1,这里的复制包括结束符’\0’

在这里插入图片描述
在这里插入图片描述
注意:

是把字符数组2接到字符数组1后面

sscanf与sprintf

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:

  • 数组作为参数的时候:
    参数中数组的第一维不需要填写长度(如果是二维数组,那么第二维需要填写长度)
  • 实际调用的时候也只需要填写数组名
  • 数组不可以作为返回类型出现,如果想要返回数组,只能把想要返回的数组做为参数传入

指针

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:

指针实际上是一个整数,指针是一个unsigned类型的整数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
星号是类型的一部分

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
基类型必须和指针变量存储的地址类型相同

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
a+i 和 &a[i] 等价的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意理解这俩种情况

在这里插入图片描述
在这里插入图片描述
引用相当于给变量起了一个别名

在这里插入图片描述
引用的&和取地址的&是不同的

在这里插入图片描述
在这里插入图片描述
引用的变量的别名,常量不可以进行引用

结构体

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结构体内可以定义自身类型的指针变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结构体的构造函数:
不需要写返回值类型,且函数名和结构体名相同

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

cin与cout

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

char str[100];
cin.getline(str,100);

string str;
getline(cin,str);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

cout<<setiosflags(ios::fixed)<<setprecision(2)<<123.4567<<endl;

//结果为123.46

在这里插入图片描述
尽可能使用scanf和printf

浮点数的比较

在这里插入图片描述
在这里插入图片描述
极小数取10^(-8)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意浮点数之间的大于是上面的形式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

const double Pi=acos(-1.0);

在这里插入图片描述
注意下面的俩点:
在这里插入图片描述

复杂度

在这里插入图片描述
在这里插入图片描述
当n为100000的时候O(n^2)的算法是不行的

平台可以的10^7~10 ^8

在这里插入图片描述

黑盒测试

在这里插入图片描述
可以重复处理

在这里插入图片描述

while(scanf("%d",&n)!=EOF){

}

在这里插入图片描述
在这里插入图片描述
注意:

读入字符串的时候的形式:

在这里插入图片描述

while(scanf("%s",str)!=EOF){

}

while(gets(str)!=NULL){

}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值