C++点滴(5)
来源:互联网 发布:老张博客源码 编辑:程序博客网 时间:2024/06/10 00:45
C(n,k) = C(n-1,k) + C(n-1,k-1)一个n元集合,选择k个元素的组合有C(n,k)个。现在把其中一个元素设置为特别元素。从剩余的n-1个元素中选择k个元素,有C(n-1,k)个,它比C(n,k)所少的都是包含特别元素的组合。再看C(n-1,k-1),如果把每个组合都加上一个特别元素,那么这个式子就表示所有包含特别元素的k组合。数组作为函数的参数:定义数组:int num[3] = {1,2,3};声明函数:void Bubble(int num[],int);定义函数:void Bubble(int num[],int n)使用:Bubble(num,3); //数组名用为实参求出int类型的一系列数(a[10])中的最大和最小值:int max=-32768,min=32767;//先假设当前max为int类型的最小值,min为int类型的最大值for(int i=0;i<=9;i++){ if(a[i]>max) max=a[i]; if(a[i]<min) min=a[i];}乘积的最后三位的值只与乘数和被乘数的后三位有关。一个整数若含有一个因子5,则必然会在求100!时产生一个零。for(int a=1;a>=3&&a<=4;a++){ cout<<a<<endl;}结果是不会输出任何数(只要不满足条件就跳出循环)判断一个数是否为整数:z==int(z)setprecision:控制输出流显示浮点数的数字个数,如果和fixed合用的话,可以控制小数点右面的位数。cout<<setprecision(2)<<123.456;1.2e+002cout<<setprecision(3)<<123.456;123(输出3位有效数字)cout<<fixed<<setprecision(3)<<123.456123.456(输出到小数点后3位)cout<<setprecision(4)<<123.456;123.5(四舍五入)C++引用:引用的概念:引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;int a,&ra=a;a为目标原名称,ra为目标引用名。给ra赋值:ra=1; 等价于 a=1; 说明:(1)&在此不是求地址运算,而是起标识作用。(2)类型标识符是指目标变量的类型。(3)声明引用时,必须同时对其进行初始化。(4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。(5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。故:对引用求地址,就是对目标变量求地址。&ra与&a相等。(6)不能建立引用的数组。因为数组是一个由若干个元素所组成的集合,所以无法建立一个由引用组成的集合。但是可以建立数组的引用。引用的两个主要用途:作为函数参数以及从函数中返回左值。1、传递可变参数传统的c中,函数在调用时参数是通过值来传递的,这就是说函数的参数不具备返回值的能力。所以在传统的c中,如果需要函数的参数具有返回值的能力,往往是通过指针来实现的。比如,实现两整数变量值交换的c程序如下:void swapint(int *a,int *b){ int temp; temp=*a; *a=*b; *b=temp;}使用引用机制后,以上程序的c++版本为:void swapint(int &a,int &b){ int temp; temp=a; a=b; b=temp;}调用该函数的c++方法为:swapint(x,y); c++自动把x,y的地址作为参数传递给swapint函数。2、给函数传递大型对象当大型对象被传递给函数时,使用引用参数可使参数传递效率得到提高,因为引用并不产生对象的副本,也就是参数传递时,对象无须复制。3、引用返回值#include <iostream>using namespace std;int& fun(int& a){ a++; return a;} //把a返回引用函数,也就是说这个fun()就是a的别名int main(){ int b=10; fun(b); //同理,fun(b)就是b自增后的b的别名 fun(b)=15;//引用返回值可以作为左值 cout<<b<<endl;//b=15 return 0;}#include <iostream>using namespace std;int& fun(int a)//去掉&{ a++; return a;} int main(){ int b=10; fun(b); fun(b)=15;//warning C4172: returning address of local variable or temporary cout<<b<<endl; //b=10 return 0;}#include <iostream>using namespace std;int fun(int& a)//去掉&{ a++; return a;} int main(){ int b=10; fun(b); fun(b)=15;//error C2106: '=' : left operand must be l-value cout<<b<<endl; return 0;}4、常引用常引用声明方式:const 类型标识符&引用名=目标变量名;用这种方式声明的引用,不能通过引用对目标变量的值进行修改,从而使引用的目标成为const,达到了引用的安全性。【例】:int a ;const int &ra=a;ra=1; //错误a=1; //正确引用型参数应该在能被定义为const的情况下,尽量定义为const 。回文数:"回文数"是一种正读倒读相同的数字。(如:1,2,3,4,5,6,7,8,9,11,22,33,44,55,66,77,88,99)#include<iostream>using namespace std;int main(){ long m,temp,n=0; cin>>m; temp=m; while(temp) { n=n*10+temp%10; temp=temp/10; } if(n==m) cout<<"Yes"<<endl; else cout<<"No"<<endl; return 0;}
如果超越了整形变量的限制,其值将为范围的另一端。
#include<iostream>using namespace std;int main(){ unsigned int a=0; cout<<a-1<<endl; long long b=1; for(int i=0;i<32;++i)b*=2; cout<<b-1<<endl; return 0;}
#include<iostream>using namespace std;int main(){int a=100;cout<<oct; //以八进制(octal)方式显示(第一位为0,第二位为1到7)cout<<a<<endl;cout<<dec; //以十进制(decimal)方式显示(第一位为1到9)cout<<a<<endl; cout<<hex; //以十六进制(hexadecimal)方式显示(前两位为0x或0X)cout<<a<<endl; return 0;}//诸如cout<<oct;只是修改cout显示整数的方式(整个程序中的显示方式,而不是临近的下一个)(默认是以十进制方式显示)//C++中只有输出八进制、十进制、十六进制的控制格式,没有二进制(binary)的。
0 0
- c点滴
- c 点滴
- C/C++使用点滴
- c语言指针点滴
- 嵌入式C语言点滴
- C学习点滴
- C语言点滴
- C语言点滴
- c语言基本知识点滴
- C语言点滴
- 点滴积累【C#】
- C基础点滴
- 《C语言点滴》书评
- C编程点滴
- C&C++点滴
- C语言点滴记录
- C语言点滴
- C语言点滴
- C++点滴(4)
- 好受伤啊
- A20红外遥控器与Android功能的适配
- 周二作业第1题输出我的班级、姓名和学号程序
- 批处理部分命令解析
- C++点滴(5)
- jQuery中的.bind()、.live()和.delegate()之间区别分析
- 《算法艺术与程序设计竞赛》 第四章习题-D题
- 让emacs默认在shell中打开
- activity的使用(八):生命周期
- 在kali linux中增加普通用户
- 每次启动hadoop都要格式化namenode?
- Android如何判断输入框是否为空
- Populating Next Right Pointers in Each Node