算法笔记第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.结构体构造函数




本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部