标题:第七章的学习
关键词:函数,指针,参数
内容
A. 一句话概括今日目标完成情况
(a)上课不走神 0%
(b)完成第七章的学习 100%
B.具体内容
7.3 利用指针变量带回函数的多个值
#include<iostream>
using namespace std;
double faver(int s[],int n,int *max,int *min)
{
double aver=s[0];
*max=*min=s[0];
for(int i=1;i<n;i++)
{
aver+=s[i];
if(s[i]>*max)*max=s[i];
if(s[i]<*min)*min=s[i];
}
return aver/n;
}
int main()
{
int a[5]={80,89,67,76,98},max,min;
double aver;
aver=faver(a,5,&max,&min); //调用函数
cout<<"max="<<max<<endl;
cout<<"min="<<min<<endl;
cout<<"aver="<<aver<<endl;
return 0;
}
在这个code中,定义了一个双精度的faver函数,利用for循环确定了a数组里的最大值和最小值,同时语句块的最后用一个return语句得出了平均值(因为aver+=s[i])
而在主函数中,语句块中的第四行和第五行用来调用函数,实现了数据的运算。
7.4 第二个函数是输入一个前面带空格的字符串,然后来实现输出第一位不是空格的字符打头的字符串
#include<iostream>
#include<cstring>
using namespace std;
//返回字符指针的函数
char *noblank(char *str)
{
while(*str==' ')str++;
return str;
}
int main()
{
char *s1=" Using namespace std;",*s2;
s2=noblank(s1);
cout<<s2<<endl;
return 0;
}
这个在前面学习第七章的时候就已经谢过了,如今写第二遍的时候,还是有些生疏。坦率地讲,我对于这点是很惭愧的。
再使用循环结构的时候,对于for,while,do while这个几个循环语句还不是很熟练,总是要思考半天。
7.5 指向函数的 指针变量
#include<iostream>
#include<cmath>
int main()
{
using namespace std;
double (*pf)(double);
pf=sqrt; //pf指向一个平方根函数
cout<<(*pf)(2.0)<<endl;
return 0;
}
这个求2.0的根号值的算法,因为使用了sqrt函数,所以要在头文件里面加上cmath。通过指向函数的指针变量可以存放函数的指针。
7.6
#include<iostream>
using namespace std;
void swap(int *px,int *py)
{
int t=*px;
*px=*py;
*py=t;
}
int main()
{
int a,b,c;
cout<<"请输入三个整数:"<<endl;
cin>>a>>b>>c;
int *pa=&a;
int *pb=&b;
int *pc=&c;
if(*pa>*pb){
swap(pa,pb);
}
if(*pa>*pc){
swap(pa,pc);
}
if(*pb>*pc){
swap(pb,pc);
}
cout<<"从小到大的三个整数:"<<a<<" "<<b<<" "<<c<<endl;
return 0;
}
这是个比较三个数字的大小,并且按照升序的顺序输出三个整数的code。其中的自定义swap函数是完成主要操作的。在swap函数中,两个形参均是指针型,即他俩互换值之后,与其对应的实参也会对应的做出改变。而*pa pa a &a 的对应关系是这样的。*pa与a对应,pa与&a对应。
今天上C++的时候,看到於老师讲到了5.5函数的其他特性,心里还是很爽的,毕竟他现在教的是我好几天以前就学了的。但是想了想还是有很大的恐惧感的,心理仿佛有个声音在呐喊:卧槽,他们怎么也学的这么快!
今天可是教学评估周的第一天啊,昨天订了个小目标,今天上课不能走神啊!稍微克制一下,我们现在是大学生了。然后不出所料……还是一如既往的神游了。
坦率的讲,对于自己的进度我是很不满意的。毕竟我是大二的了,才学到这里真特么丢人。但是我就是慢啊……我先听一遍教程,然后跟着教程敲一遍,然后删掉再自己敲一遍。为啥过了两天我又不能完整的敲下来呢?不是这错就是那错。我是很失望的。但是事后仔细想了想,好像也没什么的。我接着敲就可以了啊,我还不信我再敲两天还是敲不对了。毕竟我正式开始学C++才10天嘛,这才第十天吗。大一都是随便看看就考过了的。根本不算学啊!这么一想,我感觉我罪恶呃心灵好受多了。难道对着键盘敲个十几分钟敲出几十行整洁的语句块再按F9再按F10看他牛逼哄哄的运行起来不是一件幸福的事么?我的天。当我们的商业能力和那些巨头相差无几时,理想主义将所向披靡。
C.明日计划
明天计划肯定学第八章啊!起码不学个三节啊!顺便复习一下前面。明天下午三四节没课啊!不学习还等什么啊!
8.1~8.3
我的博客:http://blog.csdn.net/andr3zzzz