算法笔记第2章小结(注意点)
对于算法笔记(胡凡、曾磊)书中的一些重要点(第2章)总结如下:
1.int整型取值范围:-2^31~+(2^31)-1 ;绝对值在10^9范围以内的整数都可以定义成int型。
2.对浮点型来说,只需记住一点,不要用float,碰到浮点型的数据都应该用double来存储。
3.布尔型在C++中可以直接使用,但在C语言中必须添加stdbool.h头文件才可以使用。
4.scanf对其他格式符(如%d)的输入是以空白符(即空格、换行等)为结束判断标志,因此除非使用%c把空格按字符读入,其他情况都会自动跳过空格。另外,字符数组使用%s读入的时候以空格跟换行为读入结束的标志。
5.double类型的变量,其输出格式变成了%f,而在scanf中却是%lf。
6.三种实用的输出格式:
(1)%md
%md可以使不足m位的int型变量以m位进行右对齐输出,其中高位用空格补充;如果变量本身超过m位,则保持原样。
#include
int main(){int a=123,b=1234567;printf("%5d\n",a);printf("%5d\n",b);return 0;
}
输出结果:
123
1234567
(2)%0md
%0md只是在%md中间多加了0。和%md的唯一不同点在于,当变量不足m位时,将在前面补足够数量的0而不是空格。
(3)%.mf
%.mf可以让浮点数保留m位小数输出(四舍五入)。
7.getchar()和putchar()
getchar()用来输入单个字符,putchar()用来输出单个字符。getchar()可以识别换行符,当输入Enter时,getchar()可以接收为‘\n’;
8.常用math函数
(1)fabs(double x) 该函数用于对double型变量取绝对值
(2)floor(double x) 和 ceil(double x)这两个函数分别用于double型变量的向下取整和向上取整,返回类型为double型
(3)pow(double r,double p) 该函数用于返回r^p,要求r和p都是double型
(4)sqrt(double x) 该函数用于返回double型变量的算术平方根
(5)log(double x) 该函数用于返回double型变量的以自然对数e为底的对数
(6)sin(double x),cos(double x),tan(double x)
(7)round(double x) 该函数用于将double型变量x四舍五入,返回类型也是double型,需进行取整
9.冒泡排序
#include int main(){int n,arr[100];scanf("%d",&n);for(int i=0;iarr[j+1]){int temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}for(int i=0;i
10.memset--对数组中的每一个元素赋相同的值
一般来说给数组中每一个元素赋相同的值有两种方法:memset函数和fill函数,其中fill函数将在第6章STL的algorithm头文件中介绍;
memset函数的格式为:memset(数组名,值,sizeof(数组名));不过,使用memset需要在程序开头添加string.h头文件,且只建议初学者使用memset赋0或-1。
int arr[10];
memset(arr,-1,sizeof(arr));或者
#include
#include
using namespace std;int main(){int arr[10];fill(arr,arr+10,-1);printf("%d",arr[6]);
} 11.字符数组可以通过直接赋值字符串来初始化(仅限于初始化,程序其他位置不允许这样直接赋值整个字符串);
12.gets输入,puts输出
gets用来输入一行字符串(注意:gets识别换行符\n作为输入结束)
提醒:如果不是使用scanf函数的%s格式或gets函数输入字符串(例如使用getchar),请一定要在输入的每一个字符串后加入'\0',否则printf和puts输出字符串会因无法识别字符串末尾而输出一大堆乱码。
13.string.h头文件
(1)strlen()
strlen()函数可以得到字符数组中第一个\0前的字符的个数
(2)strcmp()
strcmp()函数返回两个字符串大小的比较结果,比较原则是按字典序;strcmp(str1,str2);
(3)strcpy()
strcpy(str1,str2)把字符串str2复制给str1,包括'\0'
(4)strcat()
strcat(str1,str2)把str2接到str1后面
14.sscanf和sprintf
sscanf(str,"%d",&n);
sprintf(str,"%d",n);
sscanf的作用是把字符数组str中的内容以"%d"的格式写到n中(从左至右);sprintf的作用是把n以"%d"的格式写到str字符数组中(从右至左);
#include int main(){int n;char str[100]="123";sscanf(str,"%d",&n);printf("%d\n",n);return 0;
}
输出结果:123
#include int main(){int n=233;char str[100];sprintf(str,"%d",n);printf("%s\n",str);return 0;
}
输出结果:233
15.以数组作为函数参数
函数的参数也可以是数组,且数组作为参数时,参数中数组的第一维不需要填写长度(如果是二维数组,那么第二维需要填写长度),实际调用时也只需要填写数组名。最重要的是,数组作为参数时,在函数中对数组元素的修改就等同于是对原数组元素的修改(这与普通局部变量不同)。
16.结构体构造函数
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
