目录
1.学习感想:
2.最后的学习内容补充总结:
(1).退出程序/函数:
(2).标志变量:bool与Boolean
(3).最大公约数与最小公倍数的求法:
最大公约数求法1:一个个试
最大公约数求法2:辗转相减
最大公约数求法3:辗转相除
最小公倍数求法:
(4).筛法
(5).全局变量与局部变量
(6).函数
1.函数的基本实现原理:
2.写函数与调用函数:
3.虚实结合:
(7).指针
半年的学习生活结束了,转眼间我们已经步入大学四个月了,刚进入大学的激动与渴望提升自己的热切已经过去,我好像真的像老师说的一样进入了怠惰期,虽然每天都努力去自习室,但是不想学习的思想依旧侵蚀着我,可能这就是我跟那些会着急于即将末尾的人不同的一点——热情逐渐消失,即使是天大的事情也无法将我的热情变回以往。
但是我相信我不是一个会轻易放弃的人,即使始在现在这个令我堕落的时期,我也会熬过去,就像过去的十八年一样,努力做一个一直都在努力的人。
break:退出最内层循环。
exit(0):退出操作系统。强制结束程序(正常运行程序且退出),在某些时刻有用。exit(1):非正常运行导致的退出。都是系统自带的退出程序(直接退出程序,与return不同,return是退出函数)的手段。
在c++中,我们习惯用bool来完成只有两个取值的定量,取true(注意拼写问题)为真,取false为假。只占一个字节数,十分节省内存。(实际上是只有一个符合的char变量)
我们或许会看见Boolean这种和bool长相极为相似的函数,经过查找,我发现了,bool定义的是有符号的char变量,而Boolean定义的是无符号的char变量(还不懂有什么区别···)
两个数:m、n;
求出m、n中较小的那一个,利用for循环一个一个除,看看最大的为哪一个数。
int m,n,i;
if(m>n)
swap(m,n);
i=m;//设m为较小的那个数。
while(i>=1)
{
if(m%i!=0||n%i!=0)
i--;
else
{
cout<
m与n互相减去。大的等于差,直到两个相等,求出最大公约数。
int m,n;
while(m!=n)
{
if(m>n)
m=m-n;
else if(n>m)
n=n-m;
}
cout<
跟相减差不多,这次变成了余数。
int m,n,r;
if(n>m)
swap(m,n);
r=m%n;
while(m%n!=0)
{
m=n;
n=r;
r=m%n;
}
cout<
最小公倍数=m*n/最大公约数。
就像筛子一样,把不合格的都筛除掉。常用来求素数及类似反方向比较容易求得的问题。
求素数的筛法代码实现:
//例如求100以内的素数
bool a[101];
int main()
{
for(int i=0;i<100;i++)a[i]=true;
a[1]=false;
for(int i=2;i<=sqrt(100);i++)
{
if(a[i])
{
for(int j=2;j<=100/i;j++)
a[j*i]=false;
}
}
}
全局变量容量更大,开大的数组的时候不会越界,而局部变量小一点,二维数组稍稍开大点都会越界。
全局变量还可以保证函数的实参和形参相互渗透。若用局部变量,一般情况下形参不可以传值给实参。
函数是为了实现一个独立的功能。要先定义,再调用。需要这个功能时用实参调用函数即可。
对形参进行处理,结果以return形式返回。void函数无返回值。
1.写函数格式:类型 函数名(形参表)<形参无确定参数,谁来都可以。
2.函数的调用形式:函数名(实际参数表)。
注意:调用函数写时不需要写函数类型。因为调用的实参是已经知道了内容的,有确定的值,自然也知道了类型,所以不需要类型的。形参不一样,没有确定的值,必须要写类型。
3.为什么不是先定义函数在主函数之前,就要声明函数呢?
因为函数定义在后面系统不知道要分配多少内存。
4.函数声明格式:类型 函数名(形参表(可以只写类型,不用写a、b、c··· ···因为要分配空间啦))
5.传值参数:要是函数调用时,实参和形参类型不同,也会进行强制类型转换,将实参的类型强制转换为形参的类型。
实参形参相互合:赋值语句。:将实参赋值到形参中,再进行运算。所以函数的调用相当于赋值,对实参没有任何影响。那么如何使实参受到影响呢?
(1).引用。
使用方法:类型名&引用名=某变量名。
相当于用不同名称代表一个变量。对引用名改变时对变量也改变。
void swap(int & a,int & b)
{
int temp;
temp=a;
a=b;
b=temp;
}
int n1,n2;
swap(n1,n2);
这样就能对实参造成影响了。
(2).指针变量:
内容为存储地址的变量。他指向的地址上存放的变量是目标变量。
void swap(int*x,int*y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
swap(a,b);
c里面指针是最难的一部分。还没有系统的学习,但是老师已经介绍了一点点。我就粗略的整理一下。
指针里面存储的数值被解释成内存里的地址,这个称作指针的值。
指针定义:类型标识符*变量名。
*i=&r取地址运算。
*i=3取内容运算。
i++指向下一个地址。相当于i[1]→i[2]。